zoukankan      html  css  js  c++  java
  • 当css样式表遇到层

    (附:White-space:pre可以是样式表里卖弄body的属性,作用是保持html源代码的空格与换行,等同<pre>标签。)

    Css样式表可以通过被封在层里的方式来限制页面所修饰的内容。这就是说,为了使样式表只对页面局部起修饰作用,设计者可以将页面的局部内容定义在某个范围之内,这个范围变称为CSS-layer(css层)css层可以通过HTML标签来定义,这种使用方法是web设计中的一枚利器。


    1.行<span>和层<div>
    设计者常常把css样式表放在<span>和<div>这两个布局页面的标签中。这两者的区别是<span>标签是指行内的对象,而<div>标签针对的是层内的对象。
    如果<div>标签中没有引用样式表,那么其作用就相当于<p>标签。

    两者最明显的区别在于div是块级元素,而span是行内元素(也叫内嵌元素) 所谓块元素是另起一行开始渲染的元素,行内元素则不用另起一行。

    您好<span>您拨打的电话暂时无人接听</span>请稍后再拨
    <br><br>
    您好<div>您拨打的电话暂时无人接听</div>请稍后再拨
    显示出来的效果就是:

    您好您拨打的电话暂时无人接听请稍后再拨 

    您好
    您拨打的电话暂时无人接听
    请稍后再拨

    2.层的基本定位:
    通过一些基本的属性可以将层定位在页面中的任何位置: left 相当于窗口左边的位置 left:10;
    right 相当于窗口右边的位置
    top 相当于敞口上边的位置
    bottom 相当于窗口下边的位置
    width 表示层的宽度
    height 表示层的高度
    position 用来控制采用什么样的方式定位图层 position属性的属性值有absolute,relative,static三个。 absolute表示层的位置可以用网页的左上角为基准来设置。 elative表示层的位置以其原始值的位置来设置。 Static表示层的位置可以以HTML默认的位置来设置。

    事实上只要通过left和top属性就可以控制层在页面中的位置了。通过width和height属性设置层的大小。

    <html>
        <head>
            <title>层的定位</title>
            <style>
                div{
                    position:absolute;
                    width:300px;
                    height:300px;
                    left:5em;
                    right:5em;
                    top:5em;
                }
            </style>
            <body>
                <div>
                    夕阳武士为了筹措盘缠回故乡而出战马贼,但小时医生的告诫他会在着一年失明,虽然光纤在他的眼中已经日渐昏暗,但他还是坚持出战最终战死。欧阳锋很奇怪他为何要记者赶回去?武士回答数家乡的桃花很美,他要回去看桃花。欧阳锋好奇去了武士的家乡,发现那里根本没有桃花,只有一个女人,她的名字叫做桃花。
                </div>
            </body>
        </head>
    </html>

     

    如图网页中文本距离窗口顶部是5em,距离窗口左侧也是5em,文本层的长度和宽度都是300px。

    (在层中,文本内容不足height属性的高度时,层的大小会默认为300px;如果层的内容超出内容heigh的属性高度时,浏览器会自动修改原始层的高度来适应文本的内容。)


    3.层的叠加:
    层不同于表格、框架的最大优势是可以叠加的。因为层有一个z轴的特性,z轴就好比三维坐标中的z轴,是一个上下层级的关系。就是可以说一个层可以覆盖在另一个层上面。
    根据层依次出现的顺序来判定层的上下级关系。

    <html>
        <head>
            <title>层的叠加</title>
            <style>
                div{
                    height:300;
                    width:300;
                }
                #d1{
                    position:absolute;
                    background-color:green;
                    left:2em;
                    top:2em;
                }
                #d2{
                    position:absolute;
                    background-color:blue;
                    left:4em;
                    top:4em;
                }
                #d3{
                    position:absolute;
                    background-color:red;
                    left:6em;
                    top:6em;
                }
            </style>
            <body>
                <div id="d1"></div>
                <div id="d2"></div>
                <div id="d3"></div>
            </body>
        </head>
    </html>


    4.框模型:
    层的内部便是一个框模型。
    层中内容的外面被很多空间级概念的物质包围,如空距(padding)边框(border)和边距(margin)
    空距就是页面内容距离边框的位置,边距就是边框以外的距离,页面中任意一个层内容中的周围理论上是这样被包围的。

    页面内容(元素)可以为任何内容,如果设计者愿意,可以是一段文字,一个图像,一个表格甚至是一个框架集,当然也可以是一个层。

    <html>
        <head>
            <title>框模型的大小</title>
            <style>
                #a{
                    background-color:#F9C;
                    width:20em;
                    height:10em;
                    padding:1em;
                    border:1em solid #99F;
                    margin:1em;
                }
                #b{
                    background-color:#F9C;
                    width:20em;
                    height:13em;
                    padding:3em;
                    border:1em solid #99F;
                    margin:3em;
                }
            </style>
        </head>
        <body>
            <div id="a">
                灰烬路像是一个历经沧桑的百岁老人所写,但是当时的张爱玲只有24岁。她队自己的自私和冷酷,有一种抽离。
            </div>
            <p>
            <div id="b">
                灰烬路像是一个历经沧桑的百岁老人所写,但是当时的张爱玲只有24岁。她队自己的自私和冷酷,有一种抽离。
            </div>
        </body>
    </html>

    Height属性值得是从边框上沿border到下沿border的距离
    层的实际高度为内容的高度+上空距+上边框+上边距+下空距+下边框+下边距。
    如果事先设的height值大于层中上下边框的距离,页面内容会以空白部分填补缺少的高度。 如果height的值小于边框之间的距离,那么height将不起作用。
    如果上下两层放在一起,那么两个层的边距margi将会出现合并,最终以较大的边距为标准,如上面的例子,上下层的边距是3em,而不是3+1=4em。

    5.空距padding属性:
    Padding属性又常被称为内边距。Padding属性可以细分为padding-top,padding-right,padding-bottom,padding-left四个属性。通过他们可以控制一个框模型中的每一边的空距。此外,为了方便设计者可以使用快捷的写法来分别设置四条边,如下所视。
    Padding:1em 2em 表示所有框模型空距顶边和底边为1em,左边和右边为2em
    Padding:1em 2em 3em 表示所有框模型空距顶边为1em,左边和右边为2em,底边为3em。
    Padding:1em 2em 3em 4em 表示所有框模型将按照顺时针方向,由顶边为1em开始,依次右边2
    em,底边3em,左4em

    还有一种有趣的用法就是借助padding属性可以使用自定义图像来作为空距,但在浏览器中这种方法只能定义其中一条边。


    6.边框border的扩展属性
    border是一张使用频率非常高的属性。用于表格,边框中。对于边框,不仅可以改变它的宽度,而且还可以只当其他格式和颜色。 其属性可以细分为border-width,boder-style,boder-color
    Border-width 表示边框的宽度
    Boder-style 表示边框的样式,常用的有solid,dotted和dashed等
    这个也有快捷方式 border:epx dotted red
    或者用快捷方式定义每一条边框 border:1em 2em 3em 4em;


    7.边距margin:
    Padding属性不能为负值,但margin属性可以为负值,以此对内容进行叠加。
    类似于空距和边框,边距属性也可以分为上下左右四条边来控制。Margin-top,margin-bottom,margin-left,margin-right

    8.框模型的溢出:
    有时候如果层的内容太多,以至于超出层的初始设定范围时,Ie浏览器会自动拉伸层的范围。为了改变这种情况,使层的大小不会法发生改变,可以使用overflow睡醒。在默认情况下overflow属性的值为visible,意思是页面内容可见。这是层的大小失去控制的原因。

    效果如图,它就像浮动框架一样内嵌在页面中。
    Overflow设为auto,则窗口会根据页面内容的多少来决定是否出现滚动条。Overflow属性值还可以设为hedden和scroll 前者会严格按照属性性质来设定框的大小,后者无论页面是否溢出框架都出现滚动条

  • 相关阅读:
    #轻重链剖分,交互#LOJ 6669 Nauuo and Binary Tree
    #贪心#洛谷 6093 [JSOI2015]套娃
    #根号分治,树上倍增#洛谷 3591 [POI2015]ODW
    #KD-Tree,替罪羊树#洛谷 6224 [BJWC2014]数据
    #K-D Tree#洛谷 2093 [国家集训队]JZPFAR
    nim-lang: UUID shellcode execution(过所有杀软)
    nim-lang 免杀测试:回调函数结合隐写术
    Shellcode Injection via Callbacks(nim学习系列)
    Reflective dll injection(nim 学习系列)
    搭建简易的 http server(nim 学习系列)
  • 原文地址:https://www.cnblogs.com/wangshen31/p/7912113.html
Copyright © 2011-2022 走看看