网站首页 > 技术文章 正文
在Web前端开发-CSS入门干货01 和Web前端开发-CSS入门干货02介绍了CSS重要基础概念选择器和字体系列、文本系列、背景系列样式。
其中字体、文本、背景等样式的设置可以看作是对元素内容的修饰;而网页的布局是对元素和元素之间关系的修饰,其中重要的手段便是距离,从而引出单个元素的盒子模型,以及元素之间的浮动、定位方式。
1.盒子模型
HTML中所有元素都可以看成一个盒子,从内到外包括实际内容(如100x50占据的空间)、内边距(padding)、边框(border)、外边距(margin)四部分,这些盒子的组成都是元素的样式。
内边距是指实际内容到边框的距离(分为上下左右四个分量),外边距是指元素的边框到另一个元素的边框的距离(也分为上下左右四个分量),边框是线(线也是有宽度的)。
(1)盒子模型对于所有浏览器都是通用的吗?
并不是,实际上CSS中的盒子模型(Box model)分为两种:W3C标准盒子模型和IE标准盒子模型。
大多数的浏览器都采用W3C标准盒子模型,然而IE5.5及更早的版本使用的是IE盒模型,IE6及其以上的版本在标准兼容模式下使用的是W3C的盒模型标准,所以如果浏览器使用IE内核但不是兼容模式下的话,该浏览器采用的还有可能是IE标准盒子模型。
(2)W3C标准盒子模型和IE标准盒子模型的区别
W3C标准盒子模型:元素宽度 = width+padding(内边距)+border(边框)+margin(外边距);
IE标准盒子模型:元素宽度 = width+margin(外边距),即width=实际内容宽度+padding(内边距)+border(边框)
(3)如何查看当前浏览器采用的是哪种盒子模型呢?
直接新建一个html文件,在body中新建一个div标签,然后设置其样式如下,通过浏览器查看盒子模型参数,便可以确定在该html文档中采用的盒子模型。
div {
background-color: chocolate;
width: 100px;
height: 100px;
padding: 10px;
border: 2px solid red;
}
(4)如何通过设置样式更改盒子模型呢?
在CSS3中提供了box-sizing样式,
1)box-sizing:content-box; 将采用W3C标准的盒子模型
2)box-sizing:border-box; 将采用IE标准的盒子模型
3)box-sizing:inherit; 规定应从父元素继承 box-sizing 属性的值。
(5)对于块级元素和行内元素,盒子模型是否有区别?
对于块级元素盒子模型各项设置都有效,对于行内元素
1)行内元素可以设置padding,但是垂直方向padding无效
2)行内元素可以设置border,但是垂直方向的border无效
3)行内元素可以设置margin,但是垂直方向的margin无效
2.盒子模型中各项样式
(1)内边距(padding)
1)包括四个属性:左内边距、右内边距、上内边距、下内边距;padding-left、padding-right、padding-top、padding-bottom。
2)内边距样式复合式写法
(2)边框(border)
1)包括三个属性:边框宽度、边框样式、边框颜色;border-width、border-style、border-color。
2)边框样式复合式写法,三个属性没有顺序:
border: 1px solid red;
3)边框的四条边单独设置样式
上边框(border-top)、下边框(border-bottom)、左边框(border-left)、右边框(border-right)
4)应用例子
在表格边框中,为避免相邻单元格的边框叠加变粗,与整体样式不符,可以利用border-collasps:collasps样式;其可以将单元格相邻边框进行合并,而只显示一个边框的宽度。
(3)外边距(margin)
1)包括四个属性:左外边距、右外边距、上外边距、下外边距;margin-left、margin-right、margin-top、margin-bottom。
2)外边距样式复合式写法同内边距样式复合式写法
3)典型应用
外边距可以让块级元素水平居中,需要满足两个条件:
a)块级元素需要指定宽度;
b)块级元素左右的外边距都设置为auto,其写法:
margin-left:auto;margin-right:auto;或者margin:auto;或者margin: 0 auto;
对于行内元素或者行内块元素,可以为其父元素设置text-align:center样式。
(4)CSS3中新增的样式
以下在IE9及以上版本中有效
1)圆角边框
语法:border-radius:length;
2)盒子阴影
语法:box-shadow:h-shadow v-shadow blur spread color inset;
3)文字阴影
语法:text-shadow:h-shadow v-shadow blur color
要注意的是html所有元素都可以看作盒子,可以用盒子模型进行理解。
猜你喜欢
- 2024-10-31 ReactNative源码笔记——你知道几条?
- 2024-10-31 Echarts饼图展示车站客流占比图(车站客流分析)
- 2024-10-31 第76节 Canvas绘图(下)-前端开发之JavaScript-王唯
- 2024-10-31 前端开发者如何利用 CSS 实现酷炫的变色方案?
- 2024-10-31 html中滚动字体的设置(html字体滚动效果)
- 2024-10-31 熬夜总结了“HTML5画布”的知识点(共10条)
- 2024-10-31 CSS3线性渐变、阴影、缩放实现动画下雨效果
- 2024-10-31 CSS3被玩儿坏?下雨动画效果CSS就可以搞定
- 2024-10-31 HTML5(五)——Canvas API(h5canvas动画入门教程)
- 2024-10-31 CSS3 box-shadow实现背景动画(css背景视频)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)