SS盒模型本质上是一个盒子,每一个元素都被抽象成一个盒子,每一个盒子又包括四部分
内容(content),内填充(padding),边框(border),外边距(margin)
盒子模型简图
width = content-width + padding-width + border-widthheight = content-height + padding-height + border-height
width = content-widthheight = content-height
一个块格式化上下文(block formatting context) 是Web页面的可视化CSS渲染的一部分。它是块盒子的布局发生,浮动互相交互的区域。
- 根元素,即HTML元素 - float的值不为none - overflow的值不为visible - display的值为inline-block、table-cell、table-caption - position的值为absolute或fixed
- 自适应两栏布局 - 可以阻止元素被浮动元素覆盖 - 可以包含浮动元素——清除内部浮动 - 分属于不同的BFC时可以阻止margin重叠
在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的简单来说就是通过修改某个属性就使得显示变换的元素
img/object/video/iframe/textarea/input
- 内容和外观不受页面上CSS的影响 - 有默认的尺寸,并且在很多CSS上有自己的表达样式
在元素内容之前插入额外生成的内容
在元素内容之后插入额外生成的内容
选取元素的首个字符
选取元素的第一行
对用鼠标键盘等已选取的文字部分应用样式
表示浏览器标记为不正确拼写的文本段 只有一小部分CSS属性可用于 ::spelling-error 伪元素选择器: color/background-color/cursor/caret-color/outline text-decoration/text-emphasis-color/text-shadow
伪元素应用于浏览器标识为语法错误的文本段 只有一小部分的css能够应用在::grammar-error的选择器中 color/background-color/cursor/text-emphasis-color/text-shadow/outline/text-decoration
当元素本身或其后代获得焦点时,:focus-within伪类的元素就会有效
focus-within兼容情况
SS3中包含几个新的文本特征。
在我这里您将了解以下文本属性:
text-shadow
box-shadow
text-overflow
word-wrap
word-break
浏览器支持
属性 | |||||
---|---|---|---|---|---|
text-shadow | 4.0 | 10.0 | 3.5 | 4.0 | 9.5 |
box-shadow | 10.04.0 -webkit- | 9.0 | 4.03.5 -moz- | 5.13.1 -webkit- | 10.5 |
text-overflow | 4.0 | 6.0 | 7.0 | 3.1 | 11.09.0 -o- |
word-wrap | 23.0 | 5.5 | 3.5 | 6.1 | 12.1 |
word-break | 4.0 | 5.5 | 15.0 | 3.1 | 15.0 |
CSS3 的文本阴影
CSS3 中,text-shadow属性适用于文本阴影。
您指定了水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:
实例
给标题添加阴影:
h1{text-shadow:5px5px5px#FF0000;}
CSS3 box-shadow属性
CSS3 中 CSS3 box-shadow 属性适用于盒子阴影
实例
div{box-shadow:10px10px;}
接下来给阴影添加颜色
实例
div{box-shadow:10px10pxgrey;}
接下来给阴影添加一个模糊效果
实例
div{box-shadow:10px10px5pxgrey;}
尝试一下 »
你也可以在 ::before 和 ::after 两个伪元素中添加阴影效果
实例
#boxshadow{position:relative; box-shadow:1px2px4pxrgba(0, 0, 0, .5); padding:10px; background:white;}#boxshadowimg{width:100%; border:1pxsolid#8a4419; border-style:inset;}#boxshadow::after{content: ''; position:absolute; z-index: -1; /* hide shadow behind image */box-shadow:015px20pxrgba(0, 0, 0, 0.3); width:70%; left:15%; /* one half of the remaining 30% */height:100px; bottom:0;}
阴影的一个使用特例是卡片效果
实例
div.card{width:250px; box-shadow:04px8px0rgba(0, 0, 0, 0.2), 06px20px0rgba(0, 0, 0, 0.19); text-align:center;}
文字卡片 » 图片卡片 »
CSS3 Text Overflow属性
CSS3文本溢出属性指定应向用户如何显示溢出内容
实例
p.test1{white-space:nowrap; width:200px; border:1pxsolid#000000; overflow:hidden; text-overflow:clip; }p.test2{white-space:nowrap; width:200px; border:1pxsolid#000000; overflow:hidden; text-overflow:ellipsis; }
尝试一下 »
CSS3的换行
如果某个单词太长,不适合在一个区域内,它扩展到外面:
CSS3中,自动换行属性允许您强制文本换行 - 即使这意味着分裂它中间的一个字:
CSS代码如下:
实例
允许长文本换行:
p{word-wrap:break-word;}
尝试一下 »
CSS3 单词拆分换行
CSS3 单词拆分换行属性指定换行规则:
CSS代码如下:
实例
p.test1{word-break:keep-all;}p.test2{word-break:break-all;}
尝试一下 »
新文本属性
属性 | 描述 | CSS |
---|---|---|
hanging-punctuation | 规定标点字符是否位于线框之外。 | 3 |
punctuation-trim | 规定是否对标点字符进行修剪。 | 3 |
text-align-last | 设置如何对齐最后一行或紧挨着强制换行符之前的行。 | 3 |
text-emphasis | 向元素的文本应用重点标记以及重点标记的前景色。 | 3 |
text-justify | 规定当 text-align 设置为 "justify" 时所使用的对齐方法。 | 3 |
text-outline | 规定文本的轮廓。 | 3 |
text-overflow | 规定当文本溢出包含元素时发生的事情。 | 3 |
text-shadow | 向文本添加阴影。 | 3 |
text-wrap | 规定文本的换行规则。 | 3 |
word-break | 规定非中日韩文本的换行规则。 | 3 |
word-wrap | 允许对长的不可分割的单词进行分割并换行到下一行。 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
个网页前端是由HTML DOM与嵌套组合形成视图结加上 CSS 样式的修饰形成视图,由JavaScript 接受用户的交互请求,以事件机制来响应用户交互操作而形成的。CSS是前台页面形式最重要的部分,它负责控制DOM元素的页面布局和颜色、大小的属性。
在CSS中有一著名的盒子模型理论,可以用它来控制DOM的位置。基于div+css技术的“盒子模型”的出现大大代替了传统的table表格嵌套。
虽然其十分好用,但是对于很多新手来说,却很难搞清楚它几个属性和内容之间的联系个区别。
所有页面的元素都可以看做一个盒子,占据着一定的页面空间。一般来说这些被占据的空间往往会比单纯的内容要大。因此,可以通过盒子的边框和距离等参数来控制内容的位置。
Div+CSS 盒子模型
说明:
1、Margin:中文叫外边距,主要作用是控制边框外(Border以外)的区域,外边距是透明的。
2、Border:中文叫边框,是围绕在内边距(Padding)和内容外的边框。注意,它不是透明的。
3、Padding:中文叫内边距,控制内容周围的区域,内边距是透明的。
4、Content:内容,盒子的内容,显示文本和图像。
5、在Css文件中设置的Div的Css.width和Css. height就是内容的宽和高。
6、盒子实际尺寸有可能大于内容尺寸:
盒子模型的总宽度等于content(宽)+padding(左右)+border(左右)+margin(左右);
盒子模型的总高度等于content(高)+padding(上下)+border(上下)+margin(上下);
接下来通过实例演示的方式来一一讲解Margin、Border、Padding的作用和区别。
页面如图所示:
原始样式
代码:
HTML:
<body>
<div class="TsetUpper"></div>
<div class="TsetMiddle"></div>
<div class="TsetDown"></div>
</body>
CSS:
.TsetUpper{
width: 400px;
height: 200px;
background-color: black;
position: relative;
margin: auto;
text-align: center;
}
.TsetMiddle{
width: 600px;
height: 200px;
background-color: red;
position: relative;
margin: auto;
}
.TsetDown{
width: 400px;
height: 200px;
background-color: black;
position: relative;
margin: auto;
text-align: center;
}
元素边框:我们可以在CSS边框属性中设置元素边框的样式和颜色。
按如下代码设置Div(TsetMiddle)的Border(边框):
border-style:solid;
border-width: 10px;
border-color: aqua;
刷新页面如下图:此时TsetMiddle这个盒子的总宽度已经变成200+30+30了,而且可以设置其底色和线条样式。
Border
margin 控制周围的元素区域。margin 没有背景颜色,是完全透明的。通过margin可以控制元素与四周元素的空隙距离;
按如下代码设置Div(TsetMiddle)的margin(外边距):
margin: 30px auto;
刷新页面如下图:此时TsetMiddle这个盒子的总宽度已经变成200+30(Border)+30(Margin)+30(Border)+30(Margin)了。
Margin
Padding:当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。
按如下代码设置Div(TsetMiddle)的margin(外边距):
padding: 30px;
刷新页面如下图:此时TsetMiddle这个盒子的总宽度已经变成200+30(Padding)+30(Border)+30(Margin)+30(Padding)+30(Border)+30(Margin)了。
Padding
1、各属性的值可以用px为单位,也可以用em,百分比等。
2、可以利用盒子的各种属性,调整其内容在父容器中的位置。
*请认真填写需求信息,我们会在24小时内与您取得联系。