zoukankan      html  css  js  c++  java
  • 如何用CSS进行开发

    翻译自:How to Develop with CSS

    很多web开发人员都知道CSS,但是他们很可能认为使用CSS的应用代码就是这样的:

    <p>
       <span style="font-weight:bold;font-family:Arial">Welcome!</span>
    </p>

    或者是这样的:

    <table class="middle grey"><tr>
       <td class="darkTopHeader">Item #</td>
       <td class="darkTopHeader">Qty</td>
       <td class="darkTopHeader">Cost</td>
    </tr><tr>
       <td class="rowHeaderDrk">1341</td>
       <td class="cellFieldDrk">3</td>
       <td class="cellFieldDrk">$15</td>
    </tr><tr>
       <td class="rowHeaderLt">1913</td>
       <td class="cellFieldLt">2</td>
       <td class="cellFieldLt">$17</td>
    </tr><tr>
       <td class="rowHeaderDrk">1231</td>
       <td class="cellFieldDrk">1</td>
       <td class="cellFieldDrk">$5</td>
    </tr></table>

    然而,上面的代码不过是“技术上”的CSS,如果仅是这么使用CSS,那么就失去了相当多的用好的机会。(如果上面的代码对你而言是ok的,那么请继续阅读下去,看看怎么能让你写代码更容易,写出的代码更优秀)

    这篇文章是关于什么的

    本文不依赖于高级的CSS3选择器(selector,或者不标准或者在写作本文时还不被所有浏览器很好地支持)。本文也不讨论高级CSS2选择器,那些已经标准化了但是有时也不被主流浏览器支持的selector。

    本文不是关于如何格式化你的CSS或者HTML的参考手册,也不试图告诉你怎样用CSS实现切边布局。(关于布局的例子请参考Glish或者css/edge

    本文假定你了解基本的CSS1(什么是选择器,什么是复合选择与后代选择,值如何传递,等等),并提供一系列的指导帮你更恰当地使用CSS进行开发。

    内容

    1. 让你的站点更容易开发
            1.1 格式与内容分离
            1.2 使用语义(semantic)选择器

    2. 尽可能减少HTML标签
           2.1 语义(semantic)HTML
           2.2 上下文选择器

    3. 尽可能减少CSS
            3.1 合理利用格式继承
            3.2 合并逻辑相关的格式
            3.3 页面间格式重用

    4. 锦囊
            4.1 用em或者%指定font-size
            4.2 用em指定距离
            4.3 不要再使用切片的GIF图
            4.4 把CSS放在单独的文件中
            4.5 IDs必须唯一
            4.6 <br>标签不是你的朋友
            4.7 不要用table进行布局

     

    让你的站点更容易开发

    格式与内容分离

    CSS的一大好处就是,它能让你编辑一小处就可以改变web页面多处内容的显示方式,或者不用更改每个页面就可以改变全站的格式。把格式代码放在HTML页面里的方式是在绝大多数情况下应当避免的,因为他们总是会覆盖样式表中定义的格式,这样你就需要去直接修改HTML页面的代码来达到目的。

    <p style="margin-top:1em">
        CSS applied through the style tag
        should be strongly avoided
    </p>
    <style type="text/css">
        p.introParagraph  { margin-top:1em }
    </style>
    ...
    <p class="introParagraph">
        When it must be applied directly, style should
        be specified through class or id attributes
    </p>

    如果你不是特意要通过style=”…”指定布局,请考虑是不是有一种更好的方式可以把style抽象成一个selector。

    内嵌的style在测试布局的时候是非常有用的……比如把style=”border:1px solid red”放在一个特定元素上以在页面上高亮显示它所在的位置

    使用语义(semantic)选择器

    “语义”的大致的意思是“传达的含义和信息”。

    在上面的例子中,初学者可能会取像spaceAbove这样的class名字。这样的对内嵌style的替换方式,实际上起不到内容和显示分离的效果。

    试想,如果有开发人员已经这么做了。但是他之后觉得段落的第一行不应该往下,而应该缩进并用斜体表示,所以把CSS改成这样:

    <style type="text/css">
        p.spaceAbove  { margin-left:2em; font-style:italic }
    </style>
    ...
    <p class="spaceAbove">
        This paragraph doesn't actually have any
        space above it at all...but it is italic
        and indented!
    </p>

    这就会导致class名字令人费解——名字是这样,实际是另外的情况——并且无法提供文档应该用那个class的信息。

    不要基于你假定的显示方式来命名一个class。总是用class名来指代内容译者注:比如 class的名字取为buttonSubmit,来表示Submit按钮的style)。

    尽可能减少HTML标签

    代码越多,要维护的代码也就越多。下面介绍的方式会帮你减少添加style所需的工作。

    未完待续。For more please go to : http://phrogz.net/CSS/HowToDevelopWithCSS.html

  • 相关阅读:
    PHP header的几种用法
    Elasticsearch 学习笔记
    elsearch 安装过程中遇到的错误解决方式
    python常用模块
    python 列表和字段的相关函数
    Nginx+Redis+Ehcache大型高并发高可用三层架构总结
    Docker技术底层架构剖析
    ELK日志分析平台环境部署 (yum安装)
    禁止root直接登陆linux系统
    浅谈Rsync+Inotify实时同步
  • 原文地址:https://www.cnblogs.com/urwlcm/p/4330726.html
Copyright © 2011-2022 走看看