HTMLとCSSのみを使用してKakaoTalkをクローン
まず、完成した作品から展示してスタートする位置づけです.
Project Overview
Main-Fiendsタブ メインChatsタブ
- Chatting ホームページ-Findタブ メインMoreタブ
-settingsタブ
覚えたいこと
Project Overview
HTMLとCSSでKakaoTalkのNo Mad Coker CokaoTalk講座をクローニングして粘り強くアピールしました.🤓
講座によってコーディングされていますが、HTMLやCSSの各方面を直接体験することで、よりよく理解できるので満足です!覚えたいことを整理してください.
こうぞう
- Chatting
-settingsタブ
覚えたいこと
アイコンの挿入
KakaoTalkは文字ではなくアイコンがほとんどなので、いろいろなアイコンが必要です.
すべてのアイコンはFont Awesomeによって検索され、使用されます.
アイコンの使い方も簡単(アイコン署名-ソースコードをクリックして貼り付け)で、無料アイコンも多く、料金を払う必要がなく十分です.
BEMメソッド
Block,Element,Modifierの略.
クラス名をBlock--Element__Modifier
形式で設定したCSSメソッド論である.
最初は授業名が長すぎて...行きますか.と思っていたのですが、クラスが多様化するにつれて、自分の欲しいものが一目で見つけられるので満足です.
例えば、上の箱は実際には下のコードで構成されています.friends-screen__channel
からuser-component__title--not-bold
までは少し長いが,直感的なクラス名を用いた.<div class="friends-screen__channel">
<div class="friends-screen__channel__channel-header">
<span>Channel</span>
<i class="fas fa-chevron-up fa-xs"></i>
</div>
<div class="user-component">
<div class="user-component__column">
<img src="https://i.pinimg.com/originals/ae/61/c4/ae61c4371df42b13541c045a814673ab.jpg" class="user-component__avatar--sm" />
<div class="user-component__text">
<h4 class="user-component__title--not-bold">Channel</h4>
</div>
</div>
<div class="user-component__column">
<span>2</span>
<i class="fas fa-chevron-right fa-xs"></i>
</div>
</div>
</div>
Animation
Javascriptを使用せずにCSSのみを使用して要素をアニメーション化するプロパティ.
Transitionとは異なり、キー単位でアトリビュートを変更できるため、より洗練された効果が得られます.すぐに见える効果がとても面白くて不思议なのでボリュームに気をつけて….課外授業のほか、TCP Schoolの関連投稿も参考にした.とてもきれいに片付けられています!
画面切り替え効果
ease-in-out
animation-delay
属性により、Kakao Talkの初期画面が徐々に消え、画面が変換される.最初のラベルFriendsラベルを開いたときにのみ実行され、Kakao Talkを最初に実行したときにロードされる効果を与えます. @keyframes hidesplashscreen {
from {
opacity: 1;
}
to {
opacity: 0;
visibility: hidden;
}
}
#splash-screen {
background-color: rgb(255, 235, 15);
position: absolute;
height: 100vh;
width: 100vw;
top: 0;
display: flex;
justify-content: center;
align-items: center;
font-size: 80px;
animation: hidesplashscreen 0.3s ease-in-out forwards;
animation-delay: 1s;
}
1つずつ昇るボタン。
各ボタンにはtransform: translateY(90px)
が設定されており、上から上昇させ、各要素に異なるanimation-delay
属性を付与し、一つ一つ表示されます.@keyframes appearbtnanimation {
from {
transform: translateY(90px);
opacity: 0;
}
to {
transform: none;
opacity: 1;
}
}
.nav__btn {
transform: translateY(90px);
opacity: 0;
animation: appearbtnanimation 0.5s ease-in-out forwards;
}
.nav__btn:nth-child(2) {
animation-delay: 0.2s;
}
.nav__btn:nth-child(3) {
animation-delay: 0.5s;
}
.nav__btn:last-child {
animation-delay: 0.8s;
}
回転する歯車
ギアアイコンがhover
の状態にある場合(カーソルが止まっている場合)rotateZ(360deg)
スクロールの効果が得られました.infinite
設置までどんどん転がっていきます!@keyframes rotateCog {
from {
transform: none;
}
to {
transform: rotateZ(360deg);
}
}
.screen-header__icons .fa-cog:hover {
animation: rotateCog 1s linear infinite;
}
ときめきの心
hover
の状態でキーフレームを0%-50%-100%に分け、50%でハートが赤く+大きくなり(transform:scale
を使用)、元の姿に戻ります.Heartが先に止まるとちょっと残念ですがここでもinfinite
属性が適用されます@keyframes heartbeat {
0% {
color: white;
transform: none;
}
50% {
color: tomato;
transform: scale(1.3);
}
100% {
color: white;
transform: none;
}
}
.open-post__heart-count:hover i {
will-change: transform;
animation: heartbeat 1s linear infinite;
}
反応式Web向けメディアQuery
携帯電話の画面サイズに合わせてクローン化されているので、Media Queryで予め設定されているサイズより画面が大きいとYourScreen is Super big 🤦♀️
画面が表示されます.
以下の条件@media screen and (max-width: 645px)
を満たすと、画面サイズが適切であり、no-mobile画面が見えない.
=widthが645 pxより大きいと、画面が大きすぎるno-mobile画面が表示されます.#no-mobile {
position: absolute;
z-index: 99;
height: 100vh;
background-color: rgb(255, 235, 15);
width: 100vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
top: 0;
}
@media screen and (max-width: 645px) {
#no-mobile {
display: none;
}
}
講義によると、HTMLとCSSのみを使ったクローンだが、CSSの魅力に深く惹かれるきっかけとなった.私のコードで直接結果を見た経験はとても面白くて刺激的でした...!今はまだ静的なページを作成しているだけですが、Javascriptを加えると、どんなに魅力的になるか楽しみです.
Reference
この問題について(HTMLとCSSのみを使用してKakaoTalkをクローン), 我々は、より多くの情報をここで見つけました
https://velog.io/@dev_bomdong/HTML과-CSS만으로-카카오톡-클론하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<div class="friends-screen__channel">
<div class="friends-screen__channel__channel-header">
<span>Channel</span>
<i class="fas fa-chevron-up fa-xs"></i>
</div>
<div class="user-component">
<div class="user-component__column">
<img src="https://i.pinimg.com/originals/ae/61/c4/ae61c4371df42b13541c045a814673ab.jpg" class="user-component__avatar--sm" />
<div class="user-component__text">
<h4 class="user-component__title--not-bold">Channel</h4>
</div>
</div>
<div class="user-component__column">
<span>2</span>
<i class="fas fa-chevron-right fa-xs"></i>
</div>
</div>
</div>
@keyframes hidesplashscreen {
from {
opacity: 1;
}
to {
opacity: 0;
visibility: hidden;
}
}
#splash-screen {
background-color: rgb(255, 235, 15);
position: absolute;
height: 100vh;
width: 100vw;
top: 0;
display: flex;
justify-content: center;
align-items: center;
font-size: 80px;
animation: hidesplashscreen 0.3s ease-in-out forwards;
animation-delay: 1s;
}
@keyframes appearbtnanimation {
from {
transform: translateY(90px);
opacity: 0;
}
to {
transform: none;
opacity: 1;
}
}
.nav__btn {
transform: translateY(90px);
opacity: 0;
animation: appearbtnanimation 0.5s ease-in-out forwards;
}
.nav__btn:nth-child(2) {
animation-delay: 0.2s;
}
.nav__btn:nth-child(3) {
animation-delay: 0.5s;
}
.nav__btn:last-child {
animation-delay: 0.8s;
}
@keyframes rotateCog {
from {
transform: none;
}
to {
transform: rotateZ(360deg);
}
}
.screen-header__icons .fa-cog:hover {
animation: rotateCog 1s linear infinite;
}
@keyframes heartbeat {
0% {
color: white;
transform: none;
}
50% {
color: tomato;
transform: scale(1.3);
}
100% {
color: white;
transform: none;
}
}
.open-post__heart-count:hover i {
will-change: transform;
animation: heartbeat 1s linear infinite;
}
#no-mobile {
position: absolute;
z-index: 99;
height: 100vh;
background-color: rgb(255, 235, 15);
width: 100vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
top: 0;
}
@media screen and (max-width: 645px) {
#no-mobile {
display: none;
}
}
Reference
この問題について(HTMLとCSSのみを使用してKakaoTalkをクローン), 我々は、より多くの情報をここで見つけました https://velog.io/@dev_bomdong/HTML과-CSS만으로-카카오톡-클론하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol