opspider 2020-06-06
? CSS(英文全称:Cascading Style Sheets)层叠样式表, 是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
? CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
? CSS是用来美化网页用的,没有网页则CSS毫无用处,所以CSS需要依赖HTML展示其功能 。
?
? CSS 样式由选择器和一条或多条以分号隔开的样式声明组成。每条声明的样式包含着一个 CSS属性和属性值。
选择器名 { 属性 : 属性值; ...... }
div { background-color : red; }
注意:
多行注释:
/* 这里的内容就是注释 */
1. 行内式
? 行内样式将样式定义在具体html元素的style属性中。以行内式写的CSS耦合度高,只适用于当前元素,在设定某个元素的样式时比较常用。
<p style="color:red;font-size:50px;">这是一段文本</p>
在当前元素使用 style 属性的声明方式。
? style 是行内样式属性;
? color 是颜色属性;red 是颜色属性值;
? font-size是字体大小属性;50px 是字体大小属性值
2. 嵌入式
? 嵌入式通过在html页面内容开辟一段属于css的代码区域,通常做法为在< head>标签中嵌套<style>标签,在<style>中通过选择器的方式调用指定的元素并设置相关 CSS。
<style type="text/css">p {color: blue;font-size: 40px;}</style>
3. 引入外联样式文件
? 在实际开发当中,很多时候都使用引入外联样式文件,这种形式可以使html页面更加清晰,而且可以达到更好的重用效果。
style.css
p {color: green;font-size: 30px;}
test.html
<link rel="stylesheet" type="text/css" href="style.css">
? rel:rel 属性规定当前文档与被链接文档之间的关系。
? stylesheet:文档的外部样式表。
? 很多时候,大量的 HTML 页面使用了同一个CSS。那么就可以将这些 CSS 样式保存在一个单独的.css 文件中,然后通过<link>元素去引入它。
? 注意:当有多重样式时,记住前提规则,越精确越优先。
? 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。
? CSS选择器有很多,掌握常用的即可;
选择所有 <font color="red">*</font>
* { ...... }
* { color: orange; }
选择指定标签
元素名称 { ...... }
p { color: red; font-size: 20px; }
选择设置过指定id属性值的元素 <font color="red">#</font>
#id属性值 { ...... }
#p1 { font-weight: bold; }
选择设置过指定class属性值的元素 <font color="red">.</font>
.class属性值 { ...... }
.hidden { display: none; }
? 当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔
选择器1,选择器2,... { ...... }
h2 , #pre1 { color: orange; font-style: italic; }
? CSS样式的优先级,是根据选择器的精确度/权重来决定的,常见的权重如下,权重越大,优先级越高
? 元素选择器:1
? 类选择器:10
? id选择器:100
? 内联样式:1000
? CSS组合选择器说明了两个选择器直接的关系。 CSS组合选择符包括各种简单选择符的组合方式。
? 在 CSS 中包含了四种组合方式: 后代选取器(以空格分隔),子元素选择器(以大于号分隔),相邻兄弟选择器(以加号分隔),普通兄弟选择器(以波浪线分隔)。
? 用于选择指定标签元素下的后辈元素,以空格分隔
选择器1 选择器2 { ...... }
.food li { border: 1px solid red; }
<h1>食物</h1> <ul class="food"> <li>水果 <ul> <li>香蕉</li> <li>苹果</li> <li>梨</li> </ul> </li> <li>蔬菜 <ul> <li>白菜</li> <li>油菜</li> <li>卷心菜</li> </ul> </li> </ul>
? 用于选择指定标签元素的所有第一代子元素,以大于号分隔
选择器1 + 选择器2 { ...... }
#d + div { border: 1px solid red; }
html代码同上
? 可选择紧接在另一元素后的元素,且二者有相同父元素。以加号分隔
选择器1 + 选择器2 { ...... }
#d + div { border: 1px solid red; }
<div id="d"> 相邻兄弟选择器1 <ul> <li>开心麻花</li> <li>贾玲</li> <li>宋小宝</li> </ul> </div> <div> 相邻兄弟选择器2 </div>
? 选择紧接在另一个元素后的所有元素,而且二者有相同的父元素,以波浪线分隔
选择器1 ~ 选择器2 { ...... }
li ~ li { background-color : yellow; }
<div> 普通兄弟选择器1 <ul> <li>开心麻花</li> <li>贾玲</li> <li>宋小宝</li> <li>沈腾</li> <li>王宁</li> </ul> </div>
? CSS 背景属性用于定义HTML元素的背景效果
? 设置元素的背景颜色
body { background-color:#ff0000; }
? 设置元素的背景图像,默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体。
body { background-image:url(‘paper.gif‘); }
? 设置是否及如何重复背景图像
body { background-image: url(img/logo.jpg); background-repeat: no-repeat; }
body { color:blue; } h1 { color:#00ff00; } h2 { color:rgb(255,0,0); }
? 设置文本对齐方式,center(居中),left(左对齐),right(右对齐)
body { text-align:center; } h1 { text-align:right; } h2 { text-align:right; }
? 规定添加到文本的修饰,属性值:none、underline、overline、line-through
1)underline
? 对文本添加下划线,与HTML的u元素相同。
2)overline
? 对文本添加上划线。
3)line-through
? 对文本添加中划线,与HTML中的s和 strike 元素相同。
4)none
? 关闭原本应用到元素上的所有装饰。
h3 { text-decoration:underline; }
? 设置文本首行缩进
p.ident2 { text-indent: 2em; }
? em一个相对值,例如页面的文本大小为17px,则2em就为17px*2
? 文本字体,该属性设置文本的字体。
? font-family属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体,所以尽量将不常见的字体靠前,将最常见的字体放置在最后,作为替补。
注意:
? 1)只有当字体名中含有空格或#、$之类的符号时(如 New York),才需要在font-family声明中加引号:
body { font-family: "arial black"; }
? 2)多个字体系列是用一个逗号分隔指明
/* 靠前的字体先生效 */ p{ font-family: 微软雅黑,黑体,"agency fb"; }
? 文本大小
body { font-size: 50px; /*字体大小50px*/ } #span1 { font-size: 25px; /*字体大小25px*/ }
? 字体风格,该属性最常用于规定斜体文本。 属性值:normal、italic、oblique
? 1)normal:文本正常显示;
? 2)italic:文本斜体显示;
? 3)oblique:文本倾斜显示,oblique是将文字强制倾斜。
? 说明:一般情况下,字体有粗体、斜体、下划线、删除线等诸多属性,但是不是所有字体都具有这些属性,一些不常用字体可能只有正常体,若使用italic属性则没有效果,所以需要oblique属性强制倾斜。
? 字体加粗,该属性设置文本的粗细。
? bold:可以将文本设置为粗体。
? 100 ~ 900:为字体指定了 9 级加粗度。如果一个字体内置了这些加粗级别,那么这些数字就直接映射到预定义的级别。
? 100 对应最细的字体变形;
? 900 对应最粗的字体变形;
? 400 等价于 normal;
? 700 等价于 bold。
? 规定元素中的文本的水平对齐方式。属性值如下:
注意:
? 值 justify 可以使文本的两端都对齐。在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔,使各行的长度恰好相等。对最后一行不生效。
? display 属性规定元素应该生成的框的类型。这个属性用于定义建立布局时元素生成的显示框类型。
? float的属性值有none、left、right。
只有横向浮动,并没有纵向浮动。
会将元素的display属性变更为block。
浮动元素的后一个元素会围绕着浮动元素(典型运用是文字围绕图片)
? border、padding、margin三个属性构成了盒子模型。
? 设置所有的边框属性。
? 1)可同时设置边框的宽度、样式、颜色
table, th, td { border: 1px solid black; } table { width:100%; height:50px; }
? 2)使用border-width、border-style、border-color单独设置
table,td { border-width: 1px; border-style: dotted; border-color: green; }
? 3)border-style的属性
? 4)border-collapse
? 设置是否将表格边框折叠为单一边框。
? 属性值:separate(默认,单元格边框独立)、collapse(单元格边框合并)
table { border-collapse : collapse; }
? 设置元素所有内边距的宽度,或者设置各边上内边距的宽度。
? 如果在表的内容中控制文本到边框的内边距,使用td和th元素的填充属性:
td { padding:15px; }
? 单独设置各边的内边距:padding-top、padding-left、padding-bottom、padding-right
? <font color="red">默认按照上右下左的顺序设定</font>
td .test1 { padding: 1.5cm } td .test2 { padding: 0.5cm 2.5cm }
<table border="1"> <tr> <td class="test1"> 这个表格单元的每个边拥有相等的内边距。 </td> </tr> </table> <br /> <table border="1"> <tr> <td class="test2"> 这个表格单元的上和下内边距是0.5cm,左和右内边距是 2.5cm。 </td> </tr> </table>
? 注意:通过padding属性设置元素内边距时,会使元素变形。若不想影响格式效果,可以用margin属性设置元素外边距。
? 设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度。
p.margin { margin: 2px 4px 3px 4px; }
? 单独设置各边的外边距:margin-top、margin-left、margin-bottom、margin-right
p.margin{ margin-top:100px; margin-bottom:100px; margin-right:50px; margin-left:50px; } *{ margin: auto auto; } *{ margin: 100px auto; }
说明:
? auto:自动,可以理解为居中的意思。浏览器自动计算外边距。
? margin: auto auto:第一个auto表示上下外边距自动计算,第二个auto表示左右外边距自动计算。
? 但是上下外边距在自动计算时不会生效,而左右外边距会生效,表现为居中状态,效果如下:
? 若要设置为上下左右居中状态,则要计算好自行设置上下的外边距,效果如下:
? 注意:此时使用margin-top不生效。了解
background-color: blue;background-color: yellow;<input type="button" value="变蓝" @click="changeColorT