CSS初探15

作者: 一个非典型IT学习者 | 来源:发表于2017-06-30 10:19 被阅读0次

    Head First HTML与CSS

    第十一章 布局与定位

    CSS——掌控页面的表现



    流体与冻结设计

    目前为止,我们采用的布局都称为流体布局(liquid layouts),因为不论我们将浏览器调整到多大的宽度,布局都会扩展,填满整个浏览器。

    有时可能需要将布局锁定,当用户调整屏幕大小时,你的设计仍能保持原样。这称为冻结布局(frozen layouts)。冻结布局会使元素锁定在页面上,不能移动。

    要把当前页面变为冻结页面,只需增加以下规则:

    <body>

    <div id="allcontent">/*增加一个包围<body>中所有元素的allcontent<div>*/

      <div id="header">

    .........

      </div>

    </div>

    </body>

    #allcontent{

    width:800px;/*限制页面的总宽度小于等于800像素*/

    padding-top:5px;

    padding-bottom:5px;

    background-color:#675c47;

    }

    即使浏览器大小调整了,allcontent<div>的宽度也不变,为800像素。这样一来,我们就将这个<div>以及其中包含的所有内容冻结在了这个页面上。

    凝胶布局

    虽然冻结布局多数情况下很好用,但由于页面宽度固定,若浏览器宽度过大,会使得右侧出现较大的空白空间。我们可以使用凝胶布局改进这种情况。只需要将allcontent<div>的左右外边距设为auto。这样浏览器会确定左右外边距的大小并使左右外边距相同,即让内容居中。

    #allcontent{

    width:800px;

    padding-top:5px;

    padding-bottom:5px;

    background-color:#675c47;

    margin-left:auto;

    margin-right:auto;

    绝对定位

    CSS的一个特性,可以在页面上精确地定位元素,称为绝对定位(absolute positioning)。

    示例:

    #sidebar{

    position:absolute;/*使用position属性指定这个元素要绝对定位*/

    top:100px;/*距离页面上边100像素*/

    right:200px;/*距离页面右边200像素*/

    width:280px;/*宽度为280像素*/

    }

    一个元素绝对定位时,浏览器首先将它从流中完全删除,然后浏览器将这个元素放置在top和right属性指定的位置上。(也可以使用left和bottom指定)。还要设置<div>的宽度,和浮动元素一样。

    流中的元素不会将其内联元素围绕在一个绝对定位元素周围,因为他们完全不知道页面上有这个元素。绝对定位元素对其他元素没有任何影响,这点与浮动元素不同。

    谁在上面?

    绝对定位元素可以分层放置,一个可以放在另一个上面。每个绝对定位元素都有一个名为z-index的属性,这会指定它在一个虚拟z轴上的位置(上面的元素会更“靠近你”,z-index更大)。

    相关知识点

    1.position的默认值为“static”(静态)。如果是静态定位,元素会放在正常的文档流中,由浏览器决定放置位置。你可以使用float属性将其从流中取出,让它向左或向右浮动,但最终仍然是由浏览器决定它放在哪里。而使用position属性的“absolute”值(绝对定位),是由你来告诉浏览器元素的具体放置位置。

    2.可以对任何元素指定绝对位置,包括块元素和内联元素。一个元素绝对定位时,会从正常流中删除。

    3.position属性有四个值:static,absolute,fixed,relative。固定(fixed)定位是将元素放在相对于浏览器窗口的一个位置上(而不是相对于页面),所以固定元素永远也不会移动。相对(relative)定位会让元素正常流入页面,不过在页面上显示之前要进行偏移。

    4.不一定要像浮动元素一样,为绝对定位元素指定宽度。但如果不指定,默认块元素会占据浏览器的整个宽度(除了你指定的上侧和右侧偏移量之外),如果不想这样,就要指定宽度。

    5.指定元素位置不一定要使用像素,也可以使用百分数。但百分数是相对于浏览器宽度而言的,当浏览器宽度改变时,元素位置可能会改变。如800px的10%为80px,当浏览器宽度变为400px时,

    相关文章

      网友评论

        本文标题:CSS初探15

        本文链接:https://www.haomeiwen.com/subject/pcsbcxtx.html