Chúng ta có thể thay đổi màu của hình ảnh SVG trong CSS không?

Chúng tôi sẽ bắt đầu với bản trình diễn trực tiếp, tiêu điểm, di chuột hoặc nhấp vào vòng tròn bên dưới và màu nền sẽ hoạt ảnh

Tôi là một nút tròn thú vị

Tôi sẽ để con mèo ra khỏi túi

Đây chỉ là một nút bình thường với SVG được sử dụng làm mặt nạ CSS

Thay vì thay đổi màu fill của SVG, chúng tôi thay đổi background-color của nút. Nhưng điều đó sẽ không làm hỏng niềm vui vì nó mở ra một thế giới đầy khả năng nhưng chúng ta sẽ đạt được điều đó

Sử dụng một SVG làm mặt nạ CSS

Chúng ta có thể thấy SVG mặt cười tuyệt vời của chúng ta bên dưới 😎


    
        
        
    

Điều tuyệt vời về dòng thời gian mà chúng ta đang sống là chúng ta có thể chuyển SVG sang hàm CSS url[] mà không cần mã hóa base64 hoặc thoát tất cả các loại ký tự

  1. Tiền tố SVG với data:image/svg+xml,
  2. Thêm một số cấu trúc bằng cách kết thúc một dòng bằng \
  3. Cứ như vậy, một SVG có thể đọc được đã xuất hiện trong CSS của chúng tôi

Được rồi, trước tiên hãy gán SVG cho thuộc tính background để chúng ta có thể nhìn thấy nó, chúng ta sẽ biến nó thành mặt nạ trong vài phút nữa

button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}

Chúng ta có thể tương tác với bản demo trực tiếp bên dưới để xem SVG đã được tải và các kiểu được áp dụng chính xác

Tôi là một nút tròn thú vị

Bây giờ là lúc loại bỏ thuộc tính background và gán biến

button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
1 cho thuộc tính
button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
2

Các phần màu đen của SVG sẽ là các phần hiển thị của phần tử và các phần trong suốt sẽ trở nên vô hình

button {
    /* ...Other styles */

    /* Chrome, still requires prefix in 2022 */
    -webkit-mask: var[--svg];

    /* Firefox and Safari */
    mask: var[--svg];
}

Tadaa. 🥳

Tôi là một nút tròn thú vị

Nếu bạn gặp khó khăn trong việc sử dụng mặt nạ, một mẹo hữu ích là tạm thời chỉ định mặt nạ cho thuộc tính

button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
3

Điều này cho phép chúng tôi nhìn thấy trực quan vị trí của các phần màu đen và trong suốt trên mặt nạ của bạn, điều này trở nên đặc biệt hữu ích khi xây dựng các mặt nạ phức tạp hơn

Bất kỳ nền nào đi

Bởi vì chúng tôi đang che nút nên chúng tôi có thể sử dụng bất kỳ kiểu nền hoặc hiệu ứng nào mà chúng tôi có thể nghĩ ra

Tôi là một nút tròn thú vị

Tôi là một nút tròn thú vị

Tôi là một nút tròn thú vị

Đoạn mã phong cách hình nền SVG hoàn chỉnh

Bạn có thể tìm thấy nút sao chép ở phía bên tay phải của đoạn mã, hãy tận hưởng

I'm a cool circle button


    button {
        /* Base styles */
        display: block;
        width: 4rem;
        height: 4rem;
        border: none;
        cursor: pointer;

        /* Hide button caption text */
        overflow: hidden;
        color: transparent;

        /* The fill animation */
        background-color: Crimson;
        transition: background-color 0.2s;

        /* Store the SVG in a variable so it's easy to use */
        --svg: url['data:image/svg+xml,\
        \
            \
                \
                \
            \
        '];

        /* Chrome, still requires prefix in 2022 */
        -webkit-mask: var[--svg];

        /* Firefox and Safari */
        mask: var[--svg];
    }

    button:hover,
    button:focus {
        background-color: Turquoise;
    }

    button:active {
        background-color: Gold;
    }

Phần kết luận

Chúng tôi đã học được một thủ thuật hay khi sử dụng thuộc tính CSS

button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
2 để thay đổi màu tô của SVG khi nó được sử dụng làm ____1_______3

Trên hết, chúng ta biết được rằng thuộc tính

button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
2 giống hệt thuộc tính background nên chúng ta có thể chuyển đổi chúng để giúp việc gỡ lỗi hình ảnh
button {
    /* ...Other styles */

    /* Color */
    background-color: Crimson;

    /* Store the SVG in a variable so it's easy to re-use */
    --svg: url['data:image/svg+xml,\
    \
        \
            \
            \
        \
    '];

    /* Assign the SVG variable */
    background-image: var[--svg];
}

button:hover,
button:focus {
    background-color: Turquoise;
}

button:active {
    background-color: Gold;
}
2 dễ dàng hơn

Có thể thay đổi màu của SVG không?

Đồ họa vectơ có thể mở rộng hoặc SVG là đồ họa được xác định bằng tệp văn bản XML. Điều này có nghĩa là chúng có thể được mở bằng trình soạn thảo văn bản và mã HEX xác định màu sắc có thể được thay đổi .

SVG có thể được sửa đổi bằng CSS không?

Điều đó không chỉ có nghĩa là Các thuộc tính SVG có thể được tạo kiểu bằng cách sử dụng CSS làm thuộc tính bản trình bày hoặc trong biểu định kiểu , mà điều này còn có thể được áp dụng . di chuột hoặc. tích cực. SVG 2 cũng giới thiệu nhiều thuộc tính trình bày hơn có thể được sử dụng làm thuộc tính kiểu dáng.

Chủ Đề