亲宝软件园·资讯

展开

CSS学习

riyir 人气:1
# 什么是CSS: 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式。 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。 # 盒子模型: 盒模型是CSS中的核心的概念,描述了元素如何显示。 ## 盒子模型分类: 盒子模型分为两种:W3c标准盒子模型和IE盒子模型 W3C盒子模型:这种盒子模型设置的宽度就是内容的宽度,其他的边距和边框都是在盒子外边 IE盒子模型:这种盒子模型的内容高度是除去内边距、外边框、外边距的高度,盒子的整体高度就是我们设置的高度(height)。 设置盒模型的方式是:设置box-sizing ``` box-sizing:content-box 标准盒模型 box-sizing:border-box 怪异盒模型 ``` ## 盒子模型的四种元素: - Margin(外边距) - 清除边框外的区域,外边距是透明的。 - Padding(内边距) - 清除内容周围的区域,内边距是透明的。 - Border(边框) - 围绕在内边距和内容外的边框。 - Content(内容) - 盒子的内容,显示文本和图像。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328140042633-161809395.png) ## Margin(外边距): - margin-top:上边距 - margin-buttom:下边距 - margin-left:左边距 - margin-right:右边距 ``` /* margin属性后跟四个值,第一个值设置上边距,第二个是设置右边距,第三个值设置下边距,第四个值设置左边距 */ margin: 10px 20px 30px 40px; /*下面样式与上面的样式等价*/ margin-top: 10px; margin-right: 20px; margin-bottom: 30px; margin-left: 40px; ``` ## Padding(内边距): - padding-top:上部填充 - padding-right:右部填充 - padding-bottom:下部填充 - padding-left:左部填充 ``` /* padding属性后跟四个值,第一个值设置上边距,第二个是设置右边距,第三个值设置下边距,第四个值设置左边距 */ padding: 10px 20px 30px 40px; /* 下面样式与上面的样式等价 */ padding-top: 10px; padding-right: 20px; padding-bottom: 30px; padding-left: 40px; ``` ## Border(边框): - border-top:上边界 - border-bottom:下边界 - border-left:左边界 - border-right:右边界 ``` /* 使用简写属性,同时设置四条边界,四条边界的宽度、样式和颜色都是一样的 */ border: 2px solid green; /* 下面的样式与上面的样式等价 */ border-top: 2px solid green; border-bottom: 2px solid green; border-left: 2px solid green; border-right: 2px solid green; ``` - border-width:边界宽度 - border-style:边界样式 - border-color:边界颜色 ``` /* 使用简写属性设置宽度、样式和颜色,同时作用于四条边 */ border: 2px dotted green; /* 下面的样式与上面的样式等价 */ border-width: 2px; border-style: dotted; border-color: green; ``` - border-top-width:上边界宽度 - border-top-style:上边界样式 - border-top-color:上边界颜色 - border-bottom-width:下边界宽度 - border-bottom-style:下边界样式 - border-bottom-color:下边界颜色 - border-left-width:左边界宽度 - border-left-style:左边界样式 - border-left-color:左边界颜色 - border-right-width:右边界宽度 - border-right-style:右边界样式 - border-right-color:右边界颜色 ``` /* 使用简写属性设置宽度、样式和颜色,同时作用于一条边 */ border-top: 2px solid green; /* 下面的样式与上面简写样式等价 */ border-top-width: 2px; border-top-style: dotted; border-top-color: green; ``` - border-radius:边界半径 - border-top-left-radius:左上角 - border-top-right-radius:右上角 - border-bottom-left-radius:左下角 - border-bottom-left-radius:右下角 ``` /*以简写属性的三个值为例*/ border-radius: 10px 20px 30px; /*下面样式与上面简写属性样式等价*/ border-top-left-radius: 10px; border-top-right-radius: 20px; border-bottom-right-radius: 30px; border-bottom-left-radius: 40px; ``` # CSS选择器: ## 元素选择器:针对一类标签 ``` html {color:black;} h1 {color:blue;} h2 {color:silver;} ``` ## 选择器分组:针对多个特定的标签使用,可以将任意多个选择器分组在一起 ``` /* no grouping */ h1 {color:blue;} h2 {color:blue;} h3 {color:blue;} /* grouping */ h1, h2, h3 {color:blue;} ``` ## 类选择器:针对你想要的所有标签使用 ``` /* 语法 */ .important {color:red;} /* 结合元素选择器 */ p.important {color:red;} ``` ## ID选择器:以一种独立于文档元素的方式来指定样式 ``` #intro {font-weight:bold;} ``` ## 属性选择器:根据元素的属性及属性值来选择元素 ``` a[href] {color:red;} ``` ## 后代选择器:选择作为某元素后代的元素 ``` /* 只对 h1 元素中的 em 元素应用样式 */ h1 em {color:red;} ``` ## 子元素选择器:选择作为某元素子元素的元素 ``` /* 只作为 h1 元素子元素的 strong 元素 */ h1 > strong {color:red;} ``` ## 相邻兄弟选择器:选择紧接在另一元素后的元素,且二者有相同父元素 ``` /* 增加紧接在 h1 元素后出现的段落的上边距 */ h1 + p {margin-top:50px;} ``` ## 伪类:向某些选择器添加特殊的效果 ``` selector : pseudo-class {property: value} ``` # CSS背景: | 属性 | 描述 | | ---- | ---- | | background | 简写属性,作用是将背景属性设置在一个声明中 | | background-color | 设置元素的背景颜色 | | background-image | 把图像设置为背景 | | background-repeat | 设置背景图像是否及如何重复 | | background-attachment | 设置背景图像是否固定或者随着页面的其余部分滚动 | | background-position | 设置背景图像的起始位置 | # CSS文本样式: | 属性名 | 含义 | 举例 | | ---- | ---- | ---- | | font | 设置所有字体属性 | font:italic bold 36px "宋体"; | | font-family | 设置字体类型 | font-family:"隶书"; | | font-size | 设置字体大小 | font-size:12px; | | font-style | 设置字体风格 | font-style:italic; | | font-weight | 设置字体的粗细 | font-weight:bold; | # CSS布局: ## position定位relative absolute position:absolute;position:relative绝对定位使用通常是父级定义position:relative定位,子级定义position:absolute绝对定位属性,并且子级使用left或right和top或bottom进行绝对定位。 对应的HTML结构: ```
``` 对应的CSS代码: ``` ``` ## float浮动: float属性的属性值: - none # 不浮动 - left # 元素向左浮动,而后面的内容流向对象的右侧 - right # 对象向右浮动,而后面的内容流向对象的左侧 清除浮动clear: 1. 直接在最下面加入一个空的子元素块(
) 2. 在父元素中设置overflow:hidden; - css中溢出的使用overflow:设置当对象的内容超过其指定的高度及宽度时,进行管理值: - overflow:visible; # 默认值,不剪切内容,也不添加滚动条 - overflow:auto; # 在必须时,对象内容才会被剪切或者显示滚动条 - overflow:hidden; # 不显示超过对象尺寸的内容 - overflow:scroll; # 总是显示滚动条 3. 用伪类after ``` .clearFix:after{ clear:both; display:block; visibility:hidden; height:0; line-height:0; content:""; } ``` ## Flexible Box弹性布局: 1. 容器的属性: - flex-direction - flex-wrap - flex-flow - justify-content - align-items - align-content 2. flex-direction属性 flex-direction属性决定主轴的方向(即项目的排列方向)。 - row(默认值):主轴为水平方向,起点在左端。 - row-reverse:主轴为水平方向,起点在右端。 - column:主轴为垂直方向,起点在上沿。 - column-reverse:主轴为垂直方向,起点在下沿。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328151526589-439138968.png) 3. flex-wrap属性 flex-wrap属性默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。 - nowrap(默认):不换行。 - wrap:换行,第一行在上方。 - wrap-reverse:换行,第一行在下方。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328151601877-343482957.png) 4. flex-flow属性 flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。 5. justify-content属性 justify-content属性定义了项目在主轴上的对齐方式。 - flex-start(默认值):左对齐 - flex-end:右对齐 - center: 居中 - space-between:两端对齐,项目之间的间隔都相等。 - space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328151750931-246711374.png) 6. align-items属性 align-items属性定义项目在交叉轴上如何对齐。 - flex-start:交叉轴的起点对齐。 - flex-end:交叉轴的终点对齐。 - center:交叉轴的中点对齐。 - baseline: 项目的第一行文字的基线对齐。 - stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328151833979-1309547720.png) 7. align-content属性 - align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。 - flex-start:与交叉轴的起点对齐。 - flex-end:与交叉轴的终点对齐。 - center:与交叉轴的中点对齐。 - space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。 - space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。 - stretch(默认值):轴线占满整个交叉轴。 ![](https://img2020.cnblogs.com/blog/1736986/202003/1736986-20200328152041204-1947593836.png)

加载全部内容

相关教程
猜你喜欢
用户评论