+5

Chia sẻ 1 số mẹo CSS hay

Giới thiệu

Hi chào mọi người , hôm nay mình lại tiếp tục chia sẻ 1 số mẹo CSS nhỏ nhỏ hay hay cho các bạn làm Frontend tham khảo nhé.

CSS Technique

1. Make placeholder cho contenteditable bằng CSS Để làm được mình sẽ sử dụng :empty để style trong trạng thái chưa có gì được nhập vào với pseudo :before. Khi có nội dung được nhập vào thì sẽ truyền vào content: attr() Cụ thể như sau:


HTML

<div contenteditable="true" placeholder="会社名を入力してみてください"></div>

CSS

[contenteditable=true]:empty:before{
  content: attr(placeholder);
  pointer-events: none;
  display: block; /* For Firefox */
}

div[contenteditable=true] {
  border: 1px dashed #AAA;
  width: 290px;
  padding: 15px;
}

2. Làm background cắt chéo bằng clip-path
Bình thường chúng ta hay sử dụng transform để làm méo nghiêng nhưng sử dụng clip-path cũng có thể làm được nhé.
HTML

<h1 class="title">Make Awesome Things Together <span>17</span></h1>


CSS

clip-path: polygon(0 0, 100% 0%, 100% 60%, 0% 100%);

Sau khi sử dụng clip-path mình được như hình dưới

3. Readmore toggle bằng CSS
Tạo toggle đơn giản readmore và show less đơn giản chỉ với CSS

.readmore
    input#post-1.readmore__input(type="checkbox")
    .readmore__text aaaaaa
        span.readmore__text-target
            aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
            <br> aaaaaa
    labe.readmore__trigger(for="post-1")

.readmore {
    &__input {
       display: none;
       &:checked ~ .readmore__text . readmore__text-target {
            opacity: 1;
            font-size: inherit;
            max-height: 999em;
       }
       & ~ .readmore__trigger:before {
           content: 'Readmore';
       }
       &:checked ~ .readmore__trigger:before {
           content: 'Close'
       }
    }
    &__text {
        &-target {
            opacity: 0;
            max-height: 0;
            font-size: 0;
            transition: .15s ease;
        }
    }
    &__trigger {
        cursor: pointer;
        display: inline-block;
        padding: 0 .5em;
        color: #666;
        font-size: .9em;
        line-height: 2;
        border: 1px solid #ddd;
        border-radius: .25em;
    }
}

Demo

Lời kết

Hi vọng những tip nhỏ trên sẽ có ích cho mọi người nhé.


All rights reserved

Bình luận

Đăng nhập để bình luận
Avatar
@Jellytran
thg 8 18, 2020 7:30 SA

hay quá anh

Avatar
+5
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí