zoukankan      html  css  js  c++  java
  • 网站怎么布局能解决不同浏览器对CSS解析的差异,使用css reset

    很多地方都提到过CSS Reset这个概念,而且细心的朋友会发现,许多大网站的CSS文件中也含有CSS Reset内容。

    CSS Reset是什么?

    在HTML标签在浏览器里有默认的样式,例如 p 标签有上下边距,strong标签有字体加粗样式,em标签有字体倾斜样式。不同浏览器的默认样式之间也会有差别,例如ul默认带有缩进的样式,在IE下,它的缩进是通过margin实现的,而Firefox下,它的缩进是由padding实现的。在切换页面的时候,浏览器的默认样式往往会给我们带来麻烦,影响开发效率。所以解决的方法就是一开始就将浏览器的默认样式全部去掉,更准确说就是通过重新定义标签样式。“覆盖”浏览器的CSS默认属性。最最简单的说法就是把浏览器提供的默认样式覆盖掉!这就是CSS reset。

    为什么要重置它?

    因为浏览器的品种很多,每个浏览器的默认样式也是不同的,比如<button>标签,在IE浏览器、Firefox浏览器以及Safari浏览器中的样式都是不同的,所以,通过重置button标签的CSS属性,然后再将它统一定义,就可以产生相同的显示效果。

    CSS Reset的内容是什么?

    最简单的CSS Reset内容寥寥几行就能完成:

    * { padding: 0; margin: 0; border: 0; }

    这个方法让所有的选择器的padding、margin和border都设置成0。也有内容更多的,比如YUI的CSS Reset内容:

    body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,

    form,fieldset,input,textarea,p,blockquote,th,td {

    padding: 0;

    margin: 0;

    }

    table {

    border-collapse: collapse;

    border-spacing: 0;

    }

    fieldset,img {

    border: 0;

    }

    address,caption,cite,code,dfn,em,strong,th,var {

    font-weight: normal;

    font-style: normal;

    }

    ol,ul {

    list-style: none;

    }

    caption,th {

    text-align: left;

    }

    h1,h2,h3,h4,h5,h6 {

    font-weight: normal;

    font-size: 100%;

    }

    q:before,q:after {

    content:'';

    }

    abbr,acronym { border: 0;

    }

    以及国外名人Eric Meyer的CSS Reset V1.0|200802内容:

    html, body, div, span, applet, object, iframe,

    h1, h2, h3, h4, h5, h6, p, blockquote, pre,

    a, abbr, acronym, address, big, cite, code,

    del, dfn, em, font, img, ins, kbd, q, s, samp,

    small, strike, strong, sub, sup, tt, var,

    b, u, i, center, dl, dt, dd, ol, ul, li,

    fieldset, form, label, legend,

    table, caption, tbody, tfoot, thead, tr, th, td {

    margin: 0;

    padding: 0;

    border: 0;

    outline: 0;

    font-size: 100%;

    vertical-align: baseline;

    background: transparent;

    }

    body {

    line-height: 1;

    }

    ol, ul {

    list-style: none;

    }

    blockquote, q {

    quotes: none;

    }

    blockquote:before,blockquote:after,

    q:before, q:after {

    content: '';

    content: none;

    }

    /* remember to define focus styles! */

    :focus {

    outline: 0;}

    /* remember to highlight inserts somehow! */

    ins {

    text-decoration: none;

    }

    del {

    text-decoration: line-through;

    }

    /* tables still need 'cellspacing="0"' in the markup */

    table {

    border-collapse: collapse;

    border-spacing: 0;

    }

    Eric Meyer V2.0|20110126

    html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6,
    p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em,
    img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,
    dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption,
    tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup, menu, nav, output,
    ruby, section, summary,time, mark, audio, video {
    margin: 0;padding: 0;border: 0;font-size: 100%;font: inherit;vertical-align: baseline;
    }
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;}body {line-height: 1;
    }
    ol, ul {list-style: none;
    }blockquote, q {quotes: none;}
    blockquote:before, blockquote:after,
    q:before, q:after {content: '';content: none;}table {border-collapse: collapse;border-spacing: 0;}

    大家可以看得出来,这些内容方法不同,但功能大同小异,都是起到重置的作用,所以说CSS Reset是根据个人需求不同可以按需自定义的。

  • 相关阅读:
    包教包会之Open Live Writer设置代码样式
    走近Java之HashMap In JDK8
    走近Java之包装器类Integer
    走近Java之幕后的String
    一点心得
    一个简单的多线程代码实例
    C++实现快速排序
    力扣1025. 除数博弈
    力扣1721. 交换链表中的节点
    力扣1422. 分割字符串的最大得分
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/3407359.html
Copyright © 2011-2022 走看看