CSS mặc định của trình duyệt cho các phần tử HTML


146

Tôi có thể tìm CSS mặc định của trình duyệt cho các phần tử HTML ở đâu?

Nhiều phần tử HTML đi kèm với một số thuộc tính CSS mặc định đôi khi có thể dẫn đến hành vi không xác định / không mong muốn. Ví dụ: Hộp đầu vào được hiển thị khác nhau trong các trình duyệt khác nhau. Tôi đang tìm một nơi bao gồm các thuộc tính CSS3 mới và các thành phần HTML5 mới.

Tôi đã thấy trong các câu hỏi khác (cũ hơn nhiều) (như bảng định kiểu CSS mặc định của Trình duyệt ) đề xuất giải pháp đặt lại CSS. Giải pháp này đôi khi không muốn, thường thì tôi thực sự muốn giữ một số thuộc tính cơ bản (chẳng hạn như tô sáng các hộp đầu vào trong Chrome). Nói cách khác: Tôi không muốn loại bỏ mọi thứ chỉ vì tôi không biết họ làm gì .

Vì vậy, có một trang web có thể cung cấp cho tôi tất cả thông tin này (hoặc có lẽ nhất)?


3
Không phải là một trang web nhưng trong các công cụ phát triển chrome, nó hiển thị các quy tắc css được kế thừa và các quy tắc được đánh dấu "biểu định kiểu tác nhân người dùng" sẽ hiển thị các quy tắc chrome. Xin lỗi tôi không thể giúp đỡ nhiều hơn. cũng: dowebsitesneedtolookexactlythesameineverybrowser.com
James Khoury

2
Câu hỏi tuyệt vời! Tôi đồng ý, phải có một nơi nào đó có tất cả thông tin này.

Chỉ cần một lưu ý, reset.css không dừng lại những điều cơ bản. Các hộp đầu vào của bạn vẫn sẽ được tô sáng trong Chrome. Bạn sẽ chỉ mất các khác biệt đệm ngẫu nhiên trên các trình duyệt. Vì vậy, bạn có thể bắt đầu với hành vi tương tự trong tất cả các trình duyệt (đệm / lề / ... khôn ngoan).
Jules

1
@James Khoury - Cũng đúng với Firebird.
Cướp

@Rob tất nhiên rồi! Tôi đã quên về Fireorms
James Khoury

Câu trả lời:


93

Có thể tìm thấy kho GitHub của tất cả thông số W3C HTML và biểu định kiểu CSS mặc định của nhà cung cấp tại đây

1. Kiểu mặc định cho Firefox

2. Kiểu mặc định cho Internet Explorer

3. Kiểu mặc định cho Chrome / Webkit

4. Kiểu mặc định cho Opera

5. Kiểu mặc định cho HTML4 (thông số W3C)

6. Kiểu mặc định cho HTML5 (thông số W3C)

Mẫu, theo thông số W3C HTML4 mặc định:

html, address,
blockquote,
body, dd, div,
dl, dt, fieldset, form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,
ol, p, ul, center,
dir, hr, menu, pre   { display: block; unicode-bidi: embed }
li              { display: list-item }
head            { display: none }
table           { display: table }
tr              { display: table-row }
thead           { display: table-header-group }
tbody           { display: table-row-group }
tfoot           { display: table-footer-group }
col             { display: table-column }
colgroup        { display: table-column-group }
td, th          { display: table-cell }
caption         { display: table-caption }
th              { font-weight: bolder; text-align: center }
caption         { text-align: center }
body            { margin: 8px }
h1              { font-size: 2em; margin: .67em 0 }
h2              { font-size: 1.5em; margin: .75em 0 }
h3              { font-size: 1.17em; margin: .83em 0 }
h4, p,
blockquote, ul,
fieldset, form,
ol, dl, dir,
menu            { margin: 1.12em 0 }
h5              { font-size: .83em; margin: 1.5em 0 }
h6              { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4,
h5, h6, b,
strong          { font-weight: bolder }
blockquote      { margin-left: 40px; margin-right: 40px }
i, cite, em,
var, address    { font-style: italic }
pre, tt, code,
kbd, samp       { font-family: monospace }
pre             { white-space: pre }
button, textarea,
input, select   { display: inline-block }
big             { font-size: 1.17em }
small, sub, sup { font-size: .83em }
sub             { vertical-align: sub }
sup             { vertical-align: super }
table           { border-spacing: 2px; }
thead, tbody,
tfoot           { vertical-align: middle }
td, th, tr      { vertical-align: inherit }
s, strike, del  { text-decoration: line-through }
hr              { border: 1px inset }
ol, ul, dir,
menu, dd        { margin-left: 40px }
ol              { list-style-type: decimal }
ol ul, ul ol,
ul ul, ol ol    { margin-top: 0; margin-bottom: 0 }
u, ins          { text-decoration: underline }
br:before       { content: "\A"; white-space: pre-line }
center          { text-align: center }
:link, :visited { text-decoration: underline }
:focus          { outline: thin dotted invert }

/* Begin bidirectionality settings (do not change) */
BDO[DIR="ltr"]  { direction: ltr; unicode-bidi: bidi-override }
BDO[DIR="rtl"]  { direction: rtl; unicode-bidi: bidi-override }

*[DIR="ltr"]    { direction: ltr; unicode-bidi: embed }
*[DIR="rtl"]    { direction: rtl; unicode-bidi: embed }

@media print {
  h1            { page-break-before: always }
  h1, h2, h3,
  h4, h5, h6    { page-break-after: avoid }
  ul, ol, dl    { page-break-before: avoid }
}

Bên cạnh đó, thật thú vị khi thấy những thứ như nobrthẻ khét tiếng trong biểu định kiểu HTML5 của W3C.
tomasz86

vẫn cập nhật?
Nữ web

Liên kết cho Firefox không chứa tất cả các giá trị mặc định. Ví dụ, nó không chứa css mặc định cho textarea. Bạn có thể thấy rằng trong tài nguyên: //gre-resource/forms.css. Nói chung, duyệt qua các tệp trong tài nguyên: // gre-resource để tìm tất cả thông tin mặc định. Hoặc đối với tất cả các trình duyệt, xem html.spec.whatwg.org/multipage/rendering.html .
David Spector

117

Nó khác nhau đối với mỗi trình duyệt, vì vậy:

Bạn cũng có thể xem biểu định kiểu HTML5 Boiler khắc , "bình thường hóa việc hiển thị rất nhiều thứ mà không phải là thiết lập lại theo nghĩa truyền thống". Nó cũng sửa một vài lỗi / sự không nhất quán.

Cũng đáng để xem: https://github.com/necolas/n normalize.css / blog / master / n normalize.css


2
Trong đó, đủ vui, hầu hết là những thứ tương tự như tôi đã liên kết trong câu trả lời của mình cho câu hỏi được liên kết ở trên, rõ ràng là "hết hạn". Mặc dù tôi đã chỉ thêm liên kết IE vào đó 2 ngày trước.
robertc

1
@nayish Bạn nghĩ gì khác ngoài mặc định của trình duyệt?
robertc

1
@nayish Không có định nghĩa riêng về CSS mặc định cho các thành phần HTML bên ngoài những gì trình duyệt đã triển khai trong biểu định kiểu mặc định của chúng
robertc

1
@nayish Điều đó được chỉ định đối với từng thuộc tính riêng lẻ trong thông số kỹ thuật , mặc dù lưu ý rằng độ mờ không được kế thừa theo nghĩa CSS
robertc

2
Chỉ cần lưu ý, bản tóm tắt HTML5 là nhiều hơn bình thường hóa CSS. Để bình thường hóa CSS, họ sử dụng công cụ Chuẩn hóa: necolas.github.com/n normalize.css
Đang chờ Dev ...


0

Mặc dù đây là một vấn đề của trình duyệt chéo cũ, vì mỗi trình duyệt có kết xuất và hành vi của riêng mình với một số thành phần html như trung gian và các yếu tố đầu vào, nhưng bây giờ chúng ta có thể sử dụng bộ lọc css một cách khá an toàn trên đầu chúng.

Điều này cho phép đưa ra một bảng màu với bộ lọc xoay màu sẽ hiển thị các trình duyệt chéo khá tốt.

Các đoạn mã sau đây cho thấy cách sử dụng màu loại đầu vào để hiển thị hiệu ứng này trong thời gian thực trên thành phần video bằng javascript.

Để chỉ sử dụng css, điều này là bắt buộc để sử dụng mỗi một trong các bộ lọc này: sepia không ở 0, độ bão hòa cao, thang độ xám ở 0, độ tương phản cao và sau đó đưa ra màu với thuộc tính xoay màu, theo các thử nghiệm của tôi. Bộ lọc đảo ngược không bắt buộc, nhưng mang lại một số hiệu ứng sâu sắc.

Đồng thời, bộ lọc bóng đổ đang hoạt động khá độc đáo trên trình duyệt chéo. Để được sử dụng như thế này: filter: drop-Shadow (2px 20px 50px red) [X, Y, RADIUS, COLOR]

function styloElem() {
  stylo.dataset.hue = ((parseInt(stylo.value.substring(1), 16))/46666).toFixed(0)
  
  media.style.cssText += ";filter:sepia(100%) saturate(1000%)grayscale(0)contrast(200%)hue-rotate("+ stylo.dataset.hue+"deg)invert("+(stylo.dataset.hue/3.6)+"%)"

}
styloElem()
body {
  text-align:center;
  background:#001;
  color: white
}
video {
  width:500px;max-width:500px
}
Colors: 
<input 
       type="color"
       id="stylo"
       oninput="styloElem()"
       class="media"
       data-hue="0" />

<br><br> 

<video 
       controls
       id="media"        
       onplay="this.removeAttribute('controls');this.style.all='unset'"     
       onpause="this.controls='controls';styloElem()"
       src="https://ia600206.us.archive.org/7/items/MysteresDarchives-Saison04/1944%2c%20Dans%20le%20maquis%20du%20Vercors.ogv"></video>

Tôi có thể sử dụng bộ lọc css không:

http://caniuse.com/#feat=css-filters

Một thanh công cụ tôi đã tạo xung quanh các bộ lọc css, từ đâu đến ghi chú này:

https://github.com/webdev23/ponyFilters

Một ví dụ codepen đầy đủ hơn:

http://codepen.io/Nico_KraZhtest/pen/bWExEB/


Có vẻ như là một chút sang một bên, bạn đã đúng! Đây là công việc khó khăn của tôi vào ngày này. Vì đây chỉ là css, điều này sẽ không thay đổi hành vi của phần tử trình duyệt, nhưng có thể đưa ra cách hiển thị loại phần tử này với màu sắc / độ sáng giống hệt nhau, trong bất kỳ trình duyệt nào, mà không cần viết mã đặc biệt cho từng phần tử. Điều này là không thể thực hiện được tại thời điểm của câu hỏi. Cảm ơn.
NVRM
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.