最新CSS3定位元素

简介: 【8月更文挑战第28天】

第3章 定位元素
学习盒模型,页面版式主要由三个属性控制:

position属性,控制元素位置关系。

display属性,控制元素堆叠,并排,还是不在页面上出现。

float属性,提供控制的方式,以便把元素组成多栏布局。

3.1 理解盒模型
HTML实际就是一堆盒子组成的。

每个元素盒子属性:

边框(border),可以设置边框宽窄,样式,颜色。
内边距(padding),可以设置盒子内容区与边框距离。
外边距(margin),可以设置盒子与相邻元素的间距。
简写样式
CSS 为边框、内边距和外边距分别规定了简写属性,让你通过一条声明就可以完成设定。在每

个简写声明中,属性值的顺序都是上、右、下、左。想象一下顺时针旋转就记住了。举个例子

吧,如果要设定盒子的外边距,不用简写属性就得这样写:

{margin-top:5px; margin-right:10px; margin-bottom:12px; margin-left:8px;}

使用简写属性,则可以简写为这样:

{margin:5px 10px 12px 8px;}

注意,4 个值之间有空格,但不能是其他分隔符(比如逗号之类的)。甚至,你都不用把4 值全都写出来——如果哪个值没有写,那就使用对边的值。

{margin:12px 10px 6px;}

对这个例子来说,由于没有写最后一个值(左边的值),所以左边就会使用右边的值,即10px。

而在下面的例子中:

{margin:12px 10px;}

只写了两个值,上和右,因此缺少的下和左就会被设定为12px 和10px。最后,如果你只写一个值:

{margin:12px;}

那么4 个边都取这个值。使用这种简写属性,不能绕开上和右,只给下和左设定值,即使上和右都是零也不行。绕不开怎么办?如果它们真是零的话,那就写0 呗,比如:

{margin:0 0 2px 4px;}

另外,每个盒子的属性也分三种粒度,到底选择哪个粒度的属性,要看你想选择哪条边,以及那条边的哪个属性。这三种粒度从一般到特殊分别是举例如下。

  1. 全部3 个属性,全部4 条边

{border:2px dashed red;}

  1. 1 个属性,全部4 条边

{border-style:dashed;}

  1. 1 个属性,1 条边

{border-left-style:dashed;}

混合使用这三种粒度的简写属性达成设计目标是很常见的。比如说吧,我想为盒子的上边和下边添加4 像素宽的红色边框,为左边添加1 像素宽的红色边框,而右边没有边框。可以这样写:

{border:4px solid red;} /* 先给4 条边设置相同的样式 /

{border-left-width:1px;} / 修改左边框宽度 /

{border-right:none;} / 移除右边框 */

类似地,其他属性也都有这三级粒度,例如padding 和border-radius 等。

3.1.1 盒子边框
宽度(border-width),可以使用thin,medium,thick等,也可以使用百分比和正数。
样式(border-style),有none,hidden,dotted,dashed,solid,double,groove,ridge,inset,outset等。
颜色(border-color),可以使用任意颜色值。
简写: p { border: 3px solid red; }

  • 推荐下面规则作为样式表的第一天规则:* { margin:0;padding:0; }

  • 叠加外边距,两个元素相邻,外边距以最大的为主。

外边距单位,px这些绝对值不会变,如果用em则会随着字体变大而变大。

3.2 盒子有多大
1.没有宽度的盒子,指的是不设置宽度的盒子,默认auto是父元素宽度。

2.有宽度的盒子,设定宽度,增加内外边距,整体宽度与box-sizing有关。

3.3 浮动与清除
影响浮动的因素还有很多,推荐读者看一看Eric Meyer 的那本Cascading Style Sheets2.0 Programmer’s Reference(2006,McGraw-Hill Osborne Media)。

3.3.1 浮动
CSS设计float的目的是实现文本绕排图片的效果。

此属性称为创建多栏布局最简单方式。

1.文本绕排图片

代码:图片脱离文档流了,p不认为在图片后面了,直接来到body左上角,但是文本内容会绕开浮动的图片,但浮动非图片元素时要给宽度,否则后果难以预料。

<!DOCTYPE html>








8月20日凌晨
今年首个“超级月亮”现身
全国多地都能观赏
从天文学的角度称为
“近地点满月”
此时,月亮看起来特别大
在中国人的观念里
月亮不只是
围绕地球旋转的星球
还寄托了无限幻想与思念
“明月照高楼,流光正徘徊”
忙碌的火车站洒满皎洁月光
如同披上一层轻纱
静谧又朦胧
迎接南来北往的旅客
“露从今夜白,月是故乡明”
华灯初上,五彩斑斓
无数次重逢和离别在站台上演
乡愁是一轮明月
也是一张车票.



2.创建分栏

在此基础上多用一次float属性,给p宽度200px,左浮动。

3.3.2 围住浮动元素三种方法
原始效果:

图片浮动后,footer被提上来了,紧挨section.

方法一:为父元素添加overflow:hidden
强制父元素包围浮动元素。

1.overflow真正的用途防止包含元素被超大内容撑大,包含元素还是原宽度,超大内容会被剪切掉。

2.能可靠的迫使父元素包含其浮动子元素。

方法二:同时浮动父元素
也让父元素浮动起来。

浮动section以后,不管子元素是否浮动,他都会仅仅包围住子元素。

宽度还是浏览器同宽,强制footer呆在下发,应用clear:left,被清除元素

无法提升到浮动元素旁边。

方法三:添加非浮动的清除元素。
clearfix规则:

.clearfix::after {
content: ".";
display: block;
clear: both;
height: 0;
visibility: hidden;
}

没有父元素如何清除
清除某些浮动元素,正好没有父元素作为容器包围他们。

最简单方法给浮动元素应用clear:both.

第二张图片右侧文字太少,导致第三张图片不是我们想要的。

解决方法:给段落增加clearfix清除两侧浮动。

相关文章
|
3天前
|
前端开发
|
1月前
|
前端开发
CSS - 使用 clip-path 轻松实现正六边形块状元素
如何使用CSS的`clip-path`属性来创建正六边形的块状元素。文章提供了详细的HTML和CSS代码示例,展示了如何实现六边形的布局和样式,并通过CSS动画增强了视觉效果。最终效果是一个包含文本的可交互的正六边形元素,当鼠标悬停时会改变颜色。
80 0
CSS - 使用 clip-path 轻松实现正六边形块状元素
|
1月前
|
前端开发
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
这篇文章介绍了HTML和CSS中的三种定位方式:相对定位、绝对定位和固定定位,并通过代码示例展示了它们如何影响元素在页面上的布局和位置。
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
|
1月前
|
前端开发 容器
css中使用定位实现吸顶效果
css中使用定位实现吸顶效果
30 2
|
22天前
|
存储 前端开发
为 HTML 元素指定 CSS 样式的方式
【8月更文挑战第24天】
46 0
|
23天前
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
31 0
|
24天前
|
前端开发
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
|
26天前
|
前端开发 UED 开发者
神秘的 CSS 属性 “position: sticky” 究竟有何魔力?带你彻底理解粘性定位的奇妙世界!
【8月更文挑战第20天】在前端开发中,CSS的粘性定位(`position: sticky`)是一种结合了相对与固定定位优点的强大工具。它使元素能在特定条件下相对定位,达到指定阈值时转为固定定位,非常适合制作“吸顶”导航栏等。例如,设置`position: sticky; top: 0;`能让导航栏滚动至顶部时固定显示。此特性不仅限于导航栏,还可应用于侧边栏等,增强布局灵活性与用户体验。尽管如此,仍需注意不同浏览器间的兼容性和可能的布局冲突。
39 0
|
2月前
|
前端开发 容器
CSS对行级元素的影响
【7月更文挑战第4天】CSS对行级元素的影响
29 2
|
2月前
|
前端开发
前端 CSS 经典:元素倒影
前端 CSS 经典:元素倒影
14 1