Một vài đoạn code CSS hữu ích
Bài đăng này đã không được cập nhật trong 4 năm
Bài viết này, mình sẽ giới thiệu đến các bạn một vài đoạn code CSS ngắn mà mình tìm thấy trên mạng. Hi vọng sẽ giúp được các bạn một phần nào đó.
Bouncing loader
- html
<div class="bouncing-loader">
<div></div>
<div></div>
<div></div>
</div>
- css
@keyframes bouncing-loader {
from {
opacity: 1;
transform: translateY(0);
}
to {
opacity: 0.1;
transform: translateY(-1rem);
}
}
.bouncing-loader {
display: flex;
justify-content: center;
}
.bouncing-loader > div {
width: 1rem;
height: 1rem;
margin: 3rem 0.2rem;
background: #8385aa;
border-radius: 50%;
animation: bouncing-loader 0.6s infinite alternate;
}
.bouncing-loader > div:nth-child(2) {
animation-delay: 0.2s;
}
.bouncing-loader > div:nth-child(3) {
animation-delay: 0.4s;
}
- Giải thích:
@keyframes
: dùng để defineanimation
gồm 2 trạng thái (from
vàto
) (phần tử thay đổi thuộc tínhopacity
vàtransform
.bouncing-loader
: đây là class của container chứa các phần tử (các hình tròn). Sử dụng thuộc tínhdisplay: flex;
vàjustify-content: center;
để làm cho các item bên trong canh giữa..bouncing-loader > div
: style cho các phần tử con bên trong.animation-delay
: sử dụng để cho các phần tử không bắt đầuanimation
cùng một lúc.
Box-sizing reset
- css
html {
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
- Giải thích:
box-sizing: border-box
giúp cho việc thêm các thuộc tínhpadding
hayborder
không ảnh hưởng đến chiều rộng và chiều cao của phần tử.box-sizing: inherit
: giúp cho phần tử con thừa hưởngbox-sizing
từ phần tử cha.
Circle
- html
<div class="circle"></div>
- css
.circle {
border-radius: 50%;
width: 2rem;
height: 2rem;
background: #333;
}
Custom scrollbar
- html
<div class="custom-scrollbar">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure id exercitationem nulla qui repellat laborum vitae, molestias tempora velit natus. Quas, assumenda nisi. Quisquam enim qui iure, consequatur velit sit?</p>
</div>
- css
/* Document scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
/* Scrollable element */
.some-element::webkit-scrollbar {
}
- Giải thích:
::-webkit-scrollbar
: chỉnh style cho phần tửscrollbar
.::-webkit-scrollbar-track
: chỉnh style choscrollbar track
.::-webkit-scrollbar-thumb
: chỉnh style choscrollbar thumb
.
Custom text selection
- html
<p class="custom-text-selection">Select some of this text.</p>
- css
::selection {
background: aquamarine;
color: black;
}
.custom-text-selection::selection {
background: deeppink;
color: white;
}
- Giải thích:
::selection
: define một selector trên phần tử khi mà nó được selected.
Disable selection
- html
<p>You can select me.</p>
<p class="unselectable">You can't select me!</p>
- css
.unselectable {
user-select: none;
}
- Giải thích:
::selection
: define một selector trên phần tử khi mà nó được selected.
Donut spinner
- html
<div class="donut"></div>
- css
@keyframes donut-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.donut {
display: inline-block;
border: 4px solid rgba(0, 0, 0, 0.1);
border-left-color: #7983ff;
border-radius: 50%;
width: 30px;
height: 30px;
animation: donut-spin 1.2s linear infinite;
}
- Giải thích:
- Sử dụng
semi-transparent border
(đường viền một nửa) cho cả một phần tử. Trong đó một bên sẽ đóng vai trò làloading
và sử dụng thuộc tínhrotate
để tạo hiệu ứng xoay tròn.
- Sử dụng
Gradient text
- html
<p class="gradient-text">Gradient text</p>
- css
.gradient-text {
background: -webkit-linear-gradient(pink, red);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
- Giải thích:
background: -webkit-linear-gradient(...)
: tạo cho phần tử một backgroundgradient
.webkit-text-fill-color: transparent
: làm cho màu chữ trong suốt.webkit-background-clip: text
: clip màu nền của với màu chữ làm cho màu chữ thành `gradient.
Grid centering
- html
<div class="grid-centering">
<div class="child">Centered content.</div>
</div>
- css
.grid-centering {
display: grid;
justify-content: center;
align-items: center;
}
- Giải thích:
display: grid
: làm cho phần tử hiển thị nhưgrid
.justify-content: center
: làm cho phần tử bên trong canh giữa theo chiều ngang.align-items: center
: làm cho phần tử bên trong canh giữa theo chiều dọc.
Grid layout
- html
<div class="grid-layout">
<div class="header">Header</div>
<div class="sidebar">Sidebar</div>
<div class="content">
Content
<br>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
<div class="footer">Footer</div>
</div>
- css
.grid-layout {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(3, 1fr);
grid-template-areas:
'sidebar header header'
'sidebar content content'
'sidebar footer footer';
color: white;
}
.grid-layout > div {
background: #333;
padding: 10px;
}
.sidebar {
grid-area: sidebar;
}
.content {
grid-area: content;
}
.header {
grid-area: header;
}
.footer {
grid-area: footer;
}
- Giải thích:
display: grid
: làm cho phần tử hiển thị nhưgrid
.grid-gap: 10px
: define khoảng cách giữa các phần tử.- `grid-template-columns: repeat(3, 1fr): define 3 phần tử cùng 1 size (witdh).
grid-template-areas
: define tên của mỗi grid.grid-area: sidebar
: define tên cho một grid làsidebar
.
Kết luận:
Trên đây là một số đoạn css nhỏ mình tìm được và giới thiệu với các bạn. Vì kiến thức về css còn ít nên cách trình bày của mình sẽ có vài chỗ chưa đúng. Mong các bạn thông cảm và cảm ơn các bạn đã xem bài.
Tham khảo:
All rights reserved