2013-08-30 46 views
23

Tôi nghĩ rằng giá trị initial sẽ khôi phục các kiểu được hiển thị ban đầu (như được áp dụng bởi kiểu dáng nội bộ của).Sử dụng giá trị 'ban đầu' trong CSS là gì?

Ví dụ:

div.inline { 
    display: inline; 
} 

div.initial { 
    display: initial; 
} 

tôi mong đợi sự cai trị div.inline sẽ hiển thị <div class="inline"> trong chế độ inline, và sự cai trị div.initial sẽ hiển thị <div class="initial"> sử dụng một giá trị hiển thị div 's ban đầu của block.

Nhưng khi tôi khám phá điều này, <div class="initial"> hiển thị nội dòng. Liệu tôi có sai? Bất cứ ai có thể xây dựng thêm về điều này?

+0

Đây là giải thích tốt cho giá trị ban đầu: http://stackoverflow.com/q/35689456/3597276 –

Trả lời

42

Các initial value (không thuộc tính) biểu thị giá trị ban đầu của tài sản, theo quy định tại thông số kỹ thuật CSS: “Các từ khóa 'ban đầu' đại diện cho giá trị quy định mà được chỉ định là giá trị ban đầu của tài sản” Như vậy , ý nghĩa của nó phụ thuộc vào tài sản, nhưng không phụ thuộc vào bất cứ điều gì khác, ví dụ không có trên trình duyệt hoặc trên phần tử mà thuộc tính đang được áp dụng cho. Do đó, không phải là là mặc định của trình duyệt.

Ví dụ, đối với các display tài sản, initialluôn nghĩa inline, bởi vì đó là giá trị ban đầu chỉ định của bất động sản. Trong trường hợp mẫu, trình duyệt mặc địnhblock, vì phần tử là div.

Do đó, giá trị initial có tính hữu ích hạn chế. Hiệu ứng chính của nó dường như gây nhầm lẫn cho mọi người, do hiểu lầm. Trường hợp sử dụng có thể là dành cho thuộc tính color, vì giá trị ban đầu của nó phụ thuộc vào trình duyệt (chủ yếu là màu đen, như chúng ta biết, nhưng không nhất thiết). Đối với nó, initial nghĩa là trình duyệt mặc định, vì đó là cách xác định thuộc tính, trường hợp sử dụng tương tự là font-family: bằng cách khai báo font-family: initial, bạn sẽ nhận được phông chữ mặc định của trình duyệt (có thể phụ thuộc vào cài đặt trình duyệt).

Tính hữu dụng bị hạn chế thêm do thiếu sự hỗ trợ trên IE (thậm chí là IE 10).

+3

Có một trường hợp sử dụng gây phiền nhiễu rất phổ biến khi 'initial' là * vô cùng * hữu ích: khi bạn ẩn và bỏ ẩn một phần tử theo chương trình, tức là cho nó' display: none' rồi hiển thị lại nó. Điều này là do có quá nhiều giá trị cho 'display' và không có giá trị mặc định không có' initial'. jQuery đã làm điều này trong nhiều năm, và các bộ tiền xử lý như LESS, Stylus & SCSS làm cho nó dễ dàng hơn, nhưng nó rất hữu ích khi nó đúng trong CSS. IE không có nó không giới hạn nó, mặc dù, đặc biệt là kể từ khi những người khác làm cho phép nó ở đó. – trysis

+0

Xin lỗi, đã bị mang đi đó. Có lẽ tôi sẽ đặt nó trong một câu trả lời khi tôi cảm thấy hiệu quả hơn. – trysis

+4

@trysis: 'display: initial' là một từ đồng nghĩa cho' disply: inline' khi nó hoạt động ở tất cả, do đó không mua cho bạn nhiều. – recursive

7

Source

Từ khóa CSS ban đầu áp dụng giá trị ban đầu của một tài sản để một phần tử. Nó được cho phép trên mọi thuộc tính CSS và gây ra phần tử mà nó được chỉ định để sử dụng giá trị ban đầu của thuộc tính.

/* give headers a green border */ 
h2 { border: medium solid green } 

/* but make those in the sidebar use the value of the "color" property */ 
#sidebar h2 { border-color: initial; } 
<p style="color:red"> 
    this text is red 
     <em style="color:initial"> 
      this text is in the initial color (e.g. black) 
     </em> 
    this is red again 
</p> 
+0

Cảm ơn bạn đã trả lời. Sau đó, những gì là khác biệt btwn 'inherit' và' initial'? – NkS

+1

'inherit' nhận giá trị của nó từ phần tử cha. –

Các vấn đề liên quan