Tìm kiếm bài viết

Cùng làm họa sĩ với CSS Shapes

09.11.2020

5.0/5 (1 Reviews)

Mẹo, thủ thuật CSS giúp bạn Cùng làm họa sĩ cùng CSS Shapes. Chào mọi người, đã bao giờ mọi người gặp khó khăn khi phải thiết kế UI và tạo ra các hình như thế này chưa

    Mẹo, thủ thuật CSS giúp bạn Cùng làm họa sĩ cùng CSS Shapes.

    Chào mọi người, đã bao giờ mọi người gặp khó khăn khi phải thiết kế UI và tạo ra các hình như thế này chưa

    hoặc thế này

    hoặc như thế này

    Nếu rồi thì hãy tiếp tục đọc để tìm ra giải pháp cho vấn đề trên nhé. Đầu tiên chúng t sẽ tìm cách vẽ hình số 1 trước, bạn có để ý là bố cục của hình chủ yếu chia làm 2 phần: hình vuông ở trên và cái móc tam giác ở dưới (yaoming)
    Mình sẽ viết html như nhau:

    <div class="bubble-talk">
        <div class="bubble-talk__above">
        </div>
        <div class="bubble-talk__below">
        </div>
    </div> 
    

    CSS:

    .bubble-talk__above {
        width: 150px;
        height: 100px;
        border: 5px solid;
        border-radius: 20%;
    } 
    .bubble-talk__below {
    	margin-left: 50px;
        width: 0;
        height: 0;
        border-right: 20px solid transparent; 
        border-top: 20px solid; 
    }
    

    Đối với hình số 2, bạn chỉ việc thay đổi CSS như sau

    .bubble-talk__above {
        width: 120px;
        height: 120px;
        border: 5px solid;
        border-radius: 50%;
    }
    .bubble-talk__below {
    	position: relative;
    	top: -15px;
    	margin-left: 10px;
        width: 0;
        height: 0;
        border-right: 30px solid transparent; 
        border-top: 30px solid;
        transform: rotate(35deg)
    }
    

    Đối với hình số 3, các bạn hãy thử tự mình xử lý nhé (yaoming) cũng đơn giản thôi (yaoming). Ngoài hình đơn giản trên, bạn có thể vẽ những hình dễ thương khác như trái tim, hay ngôi sao, ...
    Giờ sẽ là 1 hình nâng cao 1 chút nhé

    html thì chỉ cẩn

     <div id="pacman">
         <div id="eye"> </div>
     </div>
    CSS: 
    #pacman {
    	width: 0px;
    	height: 0px;
        border-right: 60px solid transparent; 
        border-top: 60px solid yellow; 
        border-left: 60px solid yellow;
        border-bottom: 60px solid yellow; 
        border-top-left-radius: 60px; 
        border-top-right-radius: 60px;
        border-bottom-left-radius: 60px;
        border-bottom-right-radius: 60px;
    }
    #eye {
    	width: 15px;
        height: 15px;
        background-color: black;
        border-radius: 50%;
        position: relative;
        bottom: 45px;
        right: 10px;
    }
    

    tiếp theo là sẽ làm mấy con ma :v

    <div class="bubble-talk">
        <div class="ghost-foot-1"></div>
        <div class="ghost-foot-2"></div>
    </div>
    #ghost {
    position: relative;
      display:block; 
      width: 100px; height: 140px; 
      background-color: green; 
      border-radius: 50% 50% 0% 0% 
    }
    .ghost-foot-1{
        position: absolute;
        border-right: 25px solid transparent;
        border-bottom: 35px solid white;
        border-left: 25px solid transparent;
        width: 0; height: 0;
        top: 105px;
    }
    .ghost-foot-2{
        position: absolute;
        border-right: 25px solid transparent;
        border-bottom: 35px solid white;
        border-left: 25px solid transparent;
        width: 0;
        height: 0;
        top: 105px;
        left: 50px;
    }
    

    Trong bài tiếp theo, chúng t sẽ thêm vào animation đễ pacman và ghost có thẻ chuyển động được. Chào các bạn và hẹn gặp lại

    CÓ THỂ BẠN QUAN TÂM

    Bài Viết Cùng Chuyên Mục

    XEM THÊM
    thumbnail

    Kubernetes bài 6 - Vận hành k8s Day-Two Operations và Quản trị bằng GitOps

    22.05.2026

    Khi cụm Kubernetes của bạn đã được bảo mật cấu hình, tối ưu tài nguyên và thiết lập tự phục hồi, câu hỏi đặt ra là làm sao để duy trì sự ổn định đó trong nhiều năm tiếp theo mà không bị phụ thuộc

    thumbnail

    Kubernetes bài 5 - bảo mật Cloud Native và chuẩn DevSecOps cho K8s

    22.05.2026

    Việc siết chặt an ninh (Hardening) không phải là cấu hình một vài thông số rồi bỏ đó, mà là một tư duy phòng thủ chiều sâu.

    thumbnail

    Kubernetes bài 4 - Tối ưu Resource Auto-Healing và Scale Zero-Downtime

    22.05.2026

    Bài viết này sẽ đi sâu vào các cơ chế ở tầng Kernel giúp hệ thống tự phục hồi, chống lại các đợt tấn công cạn kiệt tài nguyên và cập nhật phiên bản mới mà người dùng không hề hay biết.

    thumbnail

    Kubernetes bài 3 - Bảo mật cấu hình k8s và config Security trên Production

    22.05.2026

    Kubernetes giải quyết bài toán này bằng hai đối tượng chuyên biệt nhưng nếu không hiểu rõ bản chất bảo mật ở tầng dưới, bạn đang tự tay dâng toàn bộ chìa khóa hệ thống cho hacker.

    thumbnail

    Kubernetes bài 2 - Mạng lưới k8s và luồng Traffic ở Packet Level

    22.05.2026

    Pod không chỉ là một container: Rất nhiều người nhầm lẫn Pod 1-1 với Container. Thực chất, Pod là đơn vị triển khai nhỏ nhất, có thể chứa một hoặc nhiều container

    Mục lục bài viết