Mặc định trong giá trị thuộc tính css có nghĩa là gì?


82

Mã bootstrap của twitter có rất nhiều thuộc tính CSS có dấu !defaultở cuối.

Ví dụ

p {
  color: white !default;
}

Làm gì !default?

CẬP NHẬT

Tệ của tôi vì không được rõ ràng. Tôi đang sử dụng phần SASS của Bootstrap.


Không có mặt trong css 2.1 w3.org/TR/CSS2
Marcin

1
chưa từng thấy nó trước đây. có thể là một cái gì đó chỉ áp dụng cho bootstrap, có thể họ có một số loại phân tích cú pháp tìm kiếm điều đó
Huangism

Câu trả lời:


52

Twitter Bootstrap sử dụng ÍT nhất theo như tôi đã thấy. Mặt khác, !defaultnó thực sự là một phần của Sass và được sử dụng để cung cấp các $vargiá trị mặc định cho biến Sass ( ), điều này sẽ làm cho nó không hợp lệ trong ngữ cảnh nhất định của bạn, ngay cả trong Sass .

Bên cạnh đó, tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào !defaulttrong tài liệu LESS và theo hiểu biết của tôi, nó là độc quyền của Sass. Bạn có chắc mình tìm thấy cái này trong nguồn của Bootstrap chứ không phải ở nơi khác không? Bởi vì tôi thực sự không nhớ đã nhìn thấy mã Sass / SCSS trong các bảng định kiểu của Bootstrap.

Đối với giá trị của nó, mã thông báo hợp lệ duy nhất bắt đầu bằng !CSS !important, mà bạn có thể đã biết .


1
OK, tôi vừa tải xuống và gửi một bản sao mới của Bootstrap và thực sự, đây hoàn toàn không phải từ nguồn của Bootstrap ...
BoltClock

1
Anh ta có thể nhầm lẫn hoặc anh ta có thể đang sử dụng một cổng Sass của Bootstrap . Dù theo cách nào, anh ta đã hỏi một câu hỏi không rõ ràng.
30

@thirtydot: Thật thú vị, tôi không biết về một cổng như vậy. Mặc dù vậy, mã được đưa ra ở trên vẫn là Sass không hợp lệ và tôi thậm chí không cần phải grep cổng Sass để biết.
BoltClock

@BoltClock Xin lỗi về con cá trích đỏ. Tôi thực sự đang làm việc trên cổng SASS của Bootstrap. Đây là một mẫu từ mã:$yellow: #ffc40d !default;
Coffee Bite

@Robert Pounder: Có thể người trả lời đã không thay đổi câu trả lời được chấp nhận hoặc họ đã quên câu hỏi này (lưu ý rằng các câu trả lời của chúng tôi cách nhau gần 5 năm), hoặc đơn giản là họ không quan tâm.
BoltClock

81

! default thường được sử dụng trong Bootstrap Sass. Nó tương tự như ngược lại! Quan trọng. Tất cả các Biến Bootstraps đều được đặt bằng cách sử dụng mặc định để cho phép nhà phát triển tùy chỉnh thêm bootstrap. Với! Sass mặc định sẽ chỉ xác định một biến nếu nó chưa được đặt.

Điều này cho phép linh hoạt hơn.

//Example1 Dress color = red
$auroras-dress-color: blue;
$auroras-dress-color: red;

//Example2 Dress color = red
$auroras-dress-color: blue !default;
$auroras-dress-color: red;

//Example3 Dress color = blue
$auroras-dress-color: blue;
$auroras-dress-color: red !default;

Vì vậy, tại sao điều này lại quan trọng? Bootstrap là một gói. Hầu hết mọi người không chỉnh sửa nguồn Bootstrap. KHÔNG BAO GIỜ CẬP NHẬT NGUỒN BOOTSTRAP. Để tùy chỉnh bootstrap, bạn sẽ thêm tệp biến của riêng mình và biên dịch nó với mã bootstrap nhưng không bao giờ chạm vào gói bootstrap gốc. Trang của Bootstrap sass có đầy đủ thông tin về cách tùy chỉnh và biên dịch nó trong các tài liệu.

Tôi không biết tại sao ít hơn không làm điều này. Tôi đã không làm việc nhiều với ít hơn và không biết liệu nó có được xây dựng riêng trong quản lý biến hay không.

Ví dụ fiddle https://jsfiddle.net/siggysid/344dnnwz/


1
" Để tùy chỉnh bootstrap, bạn sẽ thêm tệp biến của riêng mình và biên dịch nó bằng mã bootstrap nhưng không bao giờ chạm vào gói bootstrap gốc. Trang của Bootstrap sass có đầy đủ thông tin về cách tùy chỉnh và biên dịch nó trong tài liệu. " Tôi đã phải tìm kiếm này một chút. Đối với bất kỳ ai quan tâm, đây là liên kết (v4.3) đến trang mà Sarah đề cập.
John E

1

Bạn có thể tìm thấy định nghĩa chính xác sau đây và lời giải thích phù hợp trên trang web sass-lang trong phần doc (biến) của nó - giá trị mặc định:

Thông thường khi bạn gán giá trị cho một biến, nếu biến đó đã có giá trị thì giá trị cũ của nó sẽ bị ghi đè. Nhưng nếu bạn đang viết một thư viện Sass, bạn có thể muốn cho phép người dùng định cấu hình các biến trong thư viện của bạn trước khi bạn sử dụng chúng để tạo CSS. Để thực hiện điều này, Sass cung cấp cờ mặc định! Điều này chỉ gán giá trị cho một biến nếu biến đó không được xác định hoặc giá trị của nó là rỗng. Nếu không, giá trị hiện có sẽ được sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.