zoukankan      html  css  js  c++  java
  • css的精髓是布局,而不是样式——之二

     

    第二天 文本布局和图片布局

    文本布局:

    1)一个常见的上下左下右分块布局:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
            <title>
                无标题文档
            </title>
            <style type="text/css">
                <!--
        body {
         margin-left: 0px;
         margin-top: 0px;
         margin-right: 0px;
         margin-bottom: 0px;
         padding: 0;
        }
        body,td,th {
         font-family: Arial, Helvetica, sans-serif;
         font-size: 76%;
        }
        #container #header {
         line-height: 80px;
         height: 80px;
         margin: 0;
         padding-left:10px;
         background:#00CC99;
         color:#3300CC;
        }
        #container #left {
         float:left;
         33%;
         height:100px;
         background:#0099CC;
        }
        #container #right {
         height:100px;
         margin-left:33%;;
         background:#0000CC;
        }
        #container #footer {
         background:#0066FF;
         color:#669999;
         clear:both;
         100%;
        }
                -->
            </style>
        </head>
        <body>
            <div id="container">
                <div id="header">
                    header
                </div>
                <div id="left">
                    left
                </div>
                <div id="right">
                    right
                </div>
                <div id="footer">
                    footer
                </div>
            </div>
        </body>
    </html>

    上边例子为经典常用的样式设置,其中body中设置margin为0,以清除页边距,设置padding为0以保证浏览器兼容性。

    由于有些浏览器th和td的样式未继承自body,因此需要并列声明样式。即body,td,th。

    2)Dreamweaver CS3之后集成了adobe的一个spry库

            Spry 框架是一个 JavaScript 库,Web 设计人员使用它可以构建能够向站点访问者提供更丰富体验的 Web 页。有了 Spry,就可以使用 HTML、CSS 和极少量的 JavaScript 将 XML 数据合并到 HTML 文档中,创建构件(如折叠构件和菜单栏),向各种页面元素中添加不同种类的效果。在设计上,Spry 框架的标记非常简单且便于那些具有 HTML、CSS 和 JavaScript 基础知识的用户使用。Spry 框架主要面向专业 Web 设计人员或高级非专业 Web 设计人员。它不应当用作企业级 Web 开发的完整 Web 应用框架(尽管它可以与其它企业级页面一起使用)。Spry可以使用XML和JSON两种格式的数据源。

    具体下载地址:http://labs.adobe.com/technologies/spry/

    3)css中的hack

            由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

      CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对IE浏览器

      类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等

      选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等

      HTML头部引用(if IE)Hack:针对所有IE:<!--[if IE]><!--您的代码--><![endif]-->,针对IE6及以下版本:<!--[if lt IE 7]><!--您的代码--><![endif]-->,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

      书写顺序,一般是将识别能力强的浏览器的CSS写在后面。

            3-1)比如要分辨IE6和firefox两种浏览器,可以这样写:

      <style>

      div{

      background:green; /* for firefox */

      *background:red; /* for IE6 */

      }

      </style>

      我在IE6中看到是红色的,在firefox中看到是绿色的。

    解释一下:

      上面的css在firefox中,它是认识不了后面的那个带星号的东东是什么的,于是将它过滤掉,不予理睬,解析得到的结果是:div{background:green},于是理所当然这个div的背景是绿色的。

      在IE6中呢,它两个background都能识别出来,它解析得到的结果是:div{background:green;background:red;},于是根据优先级别,处在后面的red的优先级高,于是当然这个div的背景颜色就是红色的了。

            3-2)CSS hack:区分IE6,IE7,firefox

         区别不同浏览器,CSS hack写法:

      区别IE6与FF:

      background:orange;*background:blue;

      区别IE6与IE7:

      background:green !important;background:blue;

      区别IE7与FF:

      background:orange; *background:green;

      区别FF,IE7,IE6:

      background:orange;*background:green;_background:blue;

      background:orange;*background:green !important;*background:blue;

      注:IE都能识别*;标准浏览器(如FF)不能识别*;

      IE6能识别*,某些情况下不能识别 !important

    4)布局元素向左、向右、居中等布局

            有三种常用方法:

     4-1)设置text-align//只支持IE浏览器,不是W3C标准,因此慎用

     4-2)设置float属性

     4-3)设置position:absolute,然后再设置ltrb四个属性

    图片布局:

    1)图像两种引入方式 

     <img src="test.gif"/>或者<object data="images/logo.gif"/>

     Ie不支持object方式。firefox等支持。w3c曾经想通过object方式取代img,但是苦于img已经深入人心

    2)边框样式的含义:

    dotted:显示为点线;

    dashed:显示为虚线;

    solid:显示为实线;

    double:显示为双线边框,两条单线与间隔的和等于border-width的值;

    groove:根据border-color的值绘制3d凹槽;

    ridge:根据border-color的值绘制3d凸槽;

    inset:根据border-color的值绘制3d凹边;

    outset:根据border-color的值绘制3d凸边。

    3)为图像增加阴影

    3-1)针对IE浏览器可以使用filter或者apha滤镜效果

    <div style="filter:shadow(color:red,direction=135);padding:12px;position:absolute;">
      <img src="test/1.gif" style="border:solid 1px #00ff00"/>
     </div>

    3-2)考虑到兼容性,建议现在图像编辑器中设计好阴影背景图像,然后使用background属性把阴影图像图钉到图像的某个边上即可。

  • 相关阅读:
    Mybatis SQL转义字符与like 查询
    如何调试MFC中的内存泄漏
    GIT 和 SVN 之间的五个基本区别
    VS Feature Pack学习之CMFCMenuBar自定义菜单字体
    NetBeans IDE 7.0 Milestone 2 Available for Download
    NetBeans 时事通讯(刊号 # 120 Oct 14, 2010)
    NetBeans 时事通讯(刊号 # 121 Oct 18, 2010)
    Hibernate Core 3.6.0.Final 来了
    NetBeans IDE 7.0 Milestone 2 Available for Download
    针对PostMessage和SendMessage区别的一个试验
  • 原文地址:https://www.cnblogs.com/withasi/p/2481041.html
Copyright © 2011-2022 走看看