CSS default browser untuk elemen HTML

146

Di mana saya dapat menemukan CSS default browser untuk elemen HTML?

Banyak elemen HTML datang dengan beberapa properti CSS default yang terkadang dapat mengakibatkan perilaku yang tidak diketahui / tidak diinginkan. Misalnya kotak Input ditampilkan secara berbeda di berbagai browser. Saya mencari tempat yang mencakup properti CSS3 baru dan elemen HTML5 baru.

Saya telah melihat jawaban lain (jauh lebih tua) (seperti stylesheet CSS default Browser ) jawaban yang menyarankan solusi reset CSS. Solusi ini terkadang tidak diinginkan, seringkali saya sebenarnya ingin menyimpan beberapa properti dasar (seperti penyorotan kotak input di Chrome). Dengan kata lain: Saya tidak ingin menyingkirkan sesuatu hanya karena saya tidak tahu apa yang mereka lakukan .

Jadi, apakah ada situs yang dapat memberi saya semua informasi ini (atau mungkin sebagian besar)?

Nachshon Schwartz
sumber
3
Bukan situs tetapi dalam alat devleoper krom itu menunjukkan aturan css yang diwarisi dan yang ditandai "stylesheet agen pengguna" akan menampilkan yang chrome. Maaf saya tidak bisa membantu. juga: dowebsitesneedtolookexactlythesameineverybrowser.com
James Khoury
2
Pertanyaan bagus! Saya setuju, pasti ada suatu tempat di mana semua informasi ini tersedia.
Sekedar catatan, reset.css tidak menghentikan hal-hal dasar. Kotak input Anda masih akan disorot di Chrome. Anda hanya akan kehilangan perbedaan padding acak di seluruh browser. Jadi Anda dapat memulai dengan perilaku yang sama di semua browser (padding / margin / ... wise).
Jules
1
@ James Khoury - Juga berlaku untuk Firebug.
Rob
@Rob tentu saja! Saya lupa tentang Firebug
James Khoury

Jawaban:

93

Repositori GitHub untuk semua W3C HTML spec dan stylesheet default CSS vendor dapat ditemukan di sini

1. Gaya Default untuk Firefox

2. Gaya Default untuk Internet Explorer

3. Gaya Default untuk Chrome / Webkit

4. Gaya Default untuk Opera

5. Gaya Default untuk HTML4 (spesifikasi W3C)

6. Gaya Default untuk HTML5 (spesifikasi W3C)

Sampel, per spesifikasi W3C HTML4 default:

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 }
}
SW4
sumber
Di samping catatan, menarik untuk melihat hal-hal seperti nobrtag terkenal di stylesheet HTML5 W3C.
tomasz86
masih up to date?
Webwoman
Tautan untuk Firefox tidak mengandung semua default. Misalnya, tidak mengandung css default untuk textarea. Anda dapat menemukannya di sumber daya: //gre-resources/forms.css. Secara umum, telusuri file dalam sumber daya: // gre-resource untuk menemukan semua informasi default. Atau untuk semua browser, lihat html.spec.whatwg.org/multipage/rendering.html .
David Spector
117

Ini berbeda untuk setiap browser, jadi:

Anda juga dapat melihat stylesheet HTML5 Boilerplate , yang "menormalkan tampilan banyak hal tanpa harus diatur ulang dalam arti tradisional". Ini juga memperbaiki beberapa bug / inkonsistensi.

Ada baiknya juga melihat: https://github.com/necolas/normalize.css/blob/master/normalize.css

tigapuluh
sumber
2
Yang, cukup lucu, sebagian besar hal yang sama seperti yang saya tautkan dalam jawaban saya untuk pertanyaan yang terkait dengan di atas yang, tampaknya, 'ketinggalan zaman'. Padahal saya hanya menambahkan tautan IE ke 2 hari yang lalu.
robertc
1
@ayish Apa lagi yang menurut Anda ada selain dari default browser?
robertc
1
@nayish Tidak ada definisi terpisah tentang CSS default untuk elemen HTML di luar apa yang telah diterapkan browser pada stylesheet default mereka
robertc
1
@ nayish Itu ditentukan terhadap masing-masing properti individu dalam spec , meskipun perhatikan bahwa opacity tidak diwarisi dalam arti CSS
robertc
2
Sebagai catatan, HTML5 boilerplate lebih dari sekadar menormalkan CSS. Untuk sekadar menormalkan CSS, mereka menggunakan alat Normalisasi: necolas.github.com/normalize.css
Menunggu Dev ...
0

Meskipun ini merupakan masalah lintas browser lama, karena setiap browser memiliki rendering dan perilaku sendiri dengan beberapa elemen html seperti media dan elemen input, kita sekarang dapat menggunakan dengan cukup aman filter css mendukung properti di atasnya.

Ini memungkinkan untuk memberikan palet warna dengan hue-rotate filter yang akan membuat browser lintas cukup baik.

Cuplikan berikut ini menunjukkan cara untuk menggunakan warna tipe input untuk membuat efek ini secara realtime pada elemen video dengan javascript.

Untuk hanya menggunakan css, ini wajib untuk menggunakan setiap filter ini: sepia tidak pada 0, saturasi tinggi, skala abu-abu pada 0, kontras tinggi, dan kemudian memberi warna dengan properti hue-rotate, mengikuti pengujian saya. Filter balik tidak wajib, tetapi memberikan beberapa efek mendalam.

Selain itu, filter drop-shadow berfungsi dengan baik lintas browser. Untuk digunakan seperti ini: 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>

Bisakah saya menggunakan filter css:

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

Toolbar yang saya buat di sekitar filter css, dari mana datang catatan ini:

https://github.com/webdev23/ponyFilters

Contoh codepen yang lebih lengkap:

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

NVRM
sumber
Tampaknya agak samping, Anda benar! Ini adalah kerja keras saya pada tanggal ini. Karena ini hanya css, ini tidak akan mengubah perilaku elemen browser, tetapi dapat memberikan cara untuk merender elemen semacam ini dengan warna / kecerahan yang sama, di browser apa pun, tanpa menulis kode khusus untuk masing-masing elemen tersebut. Ini tidak bisa dilakukan pada saat pertanyaan. Terima kasih.
NVRM