外卖网站建设的策划书,百度广告怎么做,秦皇岛营销式网站制作,搜索关键词的软件CSS介绍
CSS#xff08;Cascading Style Sheet#xff0c;层叠样式表)定义如何显示HTML元素。
当浏览器读到一个样式表#xff0c;它就会按照这个样式表来对文档进行格式化#xff08;渲染#xff09;。
CSS语法
CSS实例
每个CSS样式由两个组成部分#xff1a;选择器…CSS介绍
CSSCascading Style Sheet层叠样式表)定义如何显示HTML元素。
当浏览器读到一个样式表它就会按照这个样式表来对文档进行格式化渲染。
CSS语法
CSS实例
每个CSS样式由两个组成部分选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 CSS注释
/*这是注释*/
CSS的几种引入方式
行内样式
行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。
p stylecolor: redHello world./p
内部样式
嵌入式是将CSS样式集中写在网页的head/head标签对的style/style标签对中。格式如下
headmeta charsetUTF-8titleTitle/titlestylep{background-color: #2b99ff;}/style
/head
外部样式
外部样式就是将css写在一个单独的文件中然后在页面进行引入即可。推荐使用此方式。
link hrefmystyle.css relstylesheet typetext/css/
CSS选择器
基本选择器
元素选择器
p {color: red;}
ID选择器
#i1 {background-color: red;
}
类选择器
.c1 {font-size: 14px;
}
p.c1 {color: red;
}
注意 样式类名不要用数字开头有的浏览器不认。 标签中的class属性如果有多个要用空格分隔。
通用选择器
* {color: white;
}
组合选择器
后代选择器
/*li内部的a标签设置字体颜色*/
li a {color: green;
}
儿子选择器
/*选择所有父级是 div 元素的 p 元素*/
divp {font-family: Arial Black, arial-black, cursive;
}
毗邻选择器
/*选择所有紧接着div元素之后的p元素*/
divp {margin: 5px;
}
弟弟选择器
/*i1后面所有的兄弟p标签*/
#i1~p {border: 2px solid royalblue;
}
属性选择器
/*用于选取带有指定属性的元素。*/
p[title] {color: red;
}
/*用于选取带有指定属性和值的元素。*/
p[title213] {color: green;
}
不怎么常用的属性选择器
/*找到所有title属性以hello开头的元素*/
[title^hello] {color: red;
}/*找到所有title属性以hello结尾的元素*/
[title$hello] {color: yellow;
}/*找到所有title属性中包含字符串包含hello的元素*/
[title*hello] {color: red;
}/*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素*/
[title~hello] {color: green;
}
分组和嵌套
分组
当多个元素的样式相同的时候我们没有必要重复地为每个元素都设置样式我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。 例如
div, p {color: red;
}
上面的代码为div标签和p标签统一设置字体为红色。通常我们会分两行来写更清晰:
div,
p {color: red;
}
嵌套
多种选择器可以混合起来使用比如.c1类内部所有p标签设置字体颜色为红色。
.c1 p {color: red;
}
伪类选择器
/* 未访问的链接 */
a:link {color: #FF0000
}/* 已访问的链接 */
a:visited {color: #00FF00
} /* 鼠标移动到链接上 */
a:hover {color: #FF00FF
} /* 选定的链接 */
a:active {color: #0000FF
}/*input输入框获取焦点时样式*/
input:focus {outline: none;background-color: #eee;
}
伪元素选择器
first-letter
常用的给首字母设置特殊样式
p:first-letter {font-size: 48px;color: red;
}
before
/*在每个p元素之前插入内容*/
p:before {content:*;color:red;
}
after
/*在每个p元素之后插入内容*/
p:after {content:[?];color:blue;
}
before和after多用于清除浮动。
选择器的优先级
CSS继承
继承是CSS的一个主要特征它是依赖于祖先-后代的关系的。继承是一种机制它允许样式不仅可以应用于某个特定的元素还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。
body {color: red;
}
此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的是比普通元素的权重还要低的0。我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。
p {color: green;
}
此外继承是CSS重要的一部分我们甚至不用去考虑它为什么能够这样但CSS继承也是有限制的。有一些属性不能被继承如border, margin, padding, background等。
选择器的优先级
我们上面学了很多的选择器也就是说在一个HTML页面中有很多种方式找到一个元素并且为其设置样式那浏览器根据什么来决定应该应用哪个样式呢其实是按照不同选择器的权重来决定的具体的选择器权重计算方式如下图 除此之外还可以通过添加 !important方式来强制让样式生效但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。万不得已可以使用!important
CSS属性相关
宽和高
width属性可以为元素设置宽度。height属性可以为元素设置高度。
块级标签才能设置宽度内联标签的宽度由内容来决定。
字体属性
文字字体
font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体则会尝试下一个。浏览器会使用它可识别的第一个值。简单实例
body {font-family: Microsoft Yahei, 微软雅黑, Arial, sans-serif
}
字体大小
p {font-size: 14px;
}
如果设置成inherit表示继承父元素的字体大小值。
字重粗细
font-weight用来设置字体的字重粗细。
值描述normal默认值标准粗细bold粗体bolder更粗lighter更细100~900设置具体粗细400等同于normal而700等同于boldinherit继承父元素字体的粗细值
文本颜色
颜色属性被用来设置文字的颜色。颜色是通过CSS最经常的指定
十六进制值 - 如: FF0000一个RGB值 - 如: RGB(255,0,0)颜色的名称 - 如: red
还有rgba(255,0,0,0.3)第四个值为alpha, 指定了色彩的透明度/不透明度它的范围为0.0到1.0之间。
文字属性
文字对齐
text-align 属性规定元素中的文本的水平对齐方式。
值描述left左边对齐 默认值right右对齐center居中对齐justify两端对齐
文字装饰
text-decoration 属性用来给文字添加特殊效果。
值描述none默认。定义标准的文本。underline定义文本下的一条线。overline定义文本上的一条线。line-through定义穿过文本下的一条线。inherit继承父元素的text-decoration属性的值。
常用的为去掉a标签默认的自划线
a {text-decoration: none;
}
首行缩进
将段落的第一行缩进 32 像素
p {text-indent: 32px;
}
背景属性
background-color: red; /*背景颜色*/
background-image: url(1.jpg); /*背景图片*/
/*背景重复repeat(默认):背景图片平铺排满整个网页repeat-x背景图片只在水平方向上平铺repeat-y背景图片只在垂直方向上平铺no-repeat背景图片不平铺
*/
background-repeat: no-repeat;
background-position: right top; /*背景位置*/
/*background-position: 200px 200px;*/
支持简写
background:#ffffff url(1.png) no-repeat right top;
使用背景图片的一个常见案例就是很多网站会把很多小图标放在一张图片上然后根据位置去显示图片。减少频繁的图片请求。 参考链接点我
一个有趣的例子
鼠标滚动背景不动
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0meta http-equivX-UA-Compatible contentieedgetitle滚动背景图示例/titlestyle* {margin: 0;}.box {width: 100%;height: 500px;background: url(https://www.luffycity.com/static/img/width-bank.1c9d1b0.png) no-repeat center center;background-attachment: fixed;}.d1 {height: 500px;background-color: tomato;}.d2 {height: 500px;background-color: steelblue;}.d3 {height: 500px;background-color: mediumorchid;}/style
/head
bodydiv classd1/divdiv classbox/divdiv classd2/divdiv classd3/div
/body
/html
边框
边框属性
#i1 {border-width: 2px;border-style: solid;border-color: red;
}/*通常使用简写方式*/
#i1 {border: 2px solid red;
}
边框样式
值描述none无边框。dotted点状虚线边框。dashed矩形虚线边框。solid实线边框。
除了可以统一设置边框外还可以单独为某一个边框设置样式如下所示
#i1 {border-top-style:dotted;border-top-color: red;border-right-style:solid;border-bottom-style:dotted;border-left-style:none;
}
border-radius
用这个属性能实现圆角边框的效果。将border-radius设置为长或高的一半即可得到一个圆形。
display属性
用于控制HTML元素的显示效果。
值意义display:noneHTML文档中元素存在但是在浏览器中不显示。一般用于配合JavaScript代码使用。display:block默认占满整个页面宽度如果设置了指定宽度则会用margin填充剩下的部分。display:inline按行内元素显示此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。display:inline-block使元素同时具有行内元素和块级元素的特点。
display:none与visibility:hidden的区别
dvisibility:hidden: 可以隐藏某个元素但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说该元素虽然被隐藏了但仍然会影响布局。display:none: 可以隐藏某个元素且隐藏的元素不会占用任何空间。也就是说该元素不但被隐藏了而且该元素原本占用的空间也会从页面布局中消失。
CSS盒子模型
margin: 用于控制元素与元素之间的距离margin的最基本用途就是控制元素周围空间的间隔从视觉角度上达到相互隔开的目的。padding: 用于控制内容与边框之间的距离Border(边框): 围绕在内边距和内容外的边框。Content(内容): 盒子的内容显示文本和图像。margin外边距
.margin-test {margin-top:5px;margin-right:10px;margin-bottom:15px;margin-left:20px;
}/*推荐使用简写,*/
.margin-test {margin: 5px 10px 15px 20px; /*顺序上右下左*/
}
常见居中
.mycenter {margin: 0 auto;
}
padding内填充
.padding-test {padding-top: 5px;padding-right: 10px;padding-bottom: 15px;padding-left: 20px;
}/*推荐使用简写*/
.padding-test {padding: 5px 10px 15px 20px;/*顺序上右下左*/
}
补充padding的常用简写方式
提供一个用于四边提供两个第一个用于上下第二个用于左右如果提供三个第一个用于上第二个用于左右第三个用于下提供四个参数值将按上右下左的顺序作用于四边
float
在 CSS 中任何元素都可以浮动。浮动元素会生成一个块级框而不论它本身是何种元素。浮动的两个特点
浮动的框可以向左或向右移动直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中所以文档的普通流中的块框表现得就像浮动框不存在一样。
三种取值
left向左浮动right向右浮动none默认值不浮动
参考示例
clear
clear属性规定元素的哪一侧不允许其他浮动元素。
值描述left在左侧不允许浮动元素。right在右侧不允许浮动元素。both在左右两侧均不允许浮动元素。none默认值。允许浮动元素出现在两侧。inherit规定应该从父元素继承 clear 属性的值。
注意clear属性只会对自身起作用而不会影响其他元素。
清除浮动
清除浮动的副作用父标签塌陷问题
主要有三种方式
固定高度不好用伪元素清除法常用overflow:hidden
伪元素清除法使用较多
.clearfix:after {content: ;display: block;clear: both;
} overflow溢出属性
值描述visible默认值。内容不会被修剪会呈现在元素框之外。hidden内容会被修剪并且其余内容是不可见的。scroll内容会被修剪但是浏览器会显示滚动条以便查看其余的内容。auto如果内容被修剪则浏览器会显示滚动条以便查看其余的内容。inherit规定应该从父元素继承 overflow 属性的值。
overflow水平和垂直均设置overflow-x设置水平方向overflow-y设置垂直方向圆形头像示例
!DOCTYPE HTML
html
headmeta charsetUTF-8meta http-equivx-ua-compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1title圆形的头像示例/titlestyle* {margin: 0;padding: 0;background-color: #eeeeee;}.header-img {width: 150px;height: 150px;border: 3px solid white;border-radius: 50%;overflow: hidden;}.header-imgimg {max-width: 100%;}/style
/head
bodydiv classheader-imgimg srchttps://q1mi.github.io/Blog/asset/img/head_img.jpg alt
/div/body
/html
定位position
static
static 默认值无定位不能当作绝对定位的参照物并且设置标签对象的left、top等值是不起作用的的。
relative相对定位
相对定位是相对于该元素在文档流中的原始位置即以自己原始位置为参照物。有趣的是即使设定了元素的相对定位以及偏移值元素还占有着原来的位置即占据文档流空间。对象遵循正常文档流但将依据toprightbottomleft等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
注意positionrelative的一个主要用法方便绝对定位元素找到参照物。
absolute绝对定位
定义设置为绝对定位的元素框从文档流完全删除并相对于最近的已定位祖先元素定位如果元素没有已定位的祖先元素那么它的位置相对于最初的包含块即body元素。元素原先在正常文档流中所占的空间会关闭就好像该元素原来不存在一样。元素定位后生成一个块级框而不论原来它在正常流中生成何种类型的框。
重点如果父级设置了position属性例如position:relative;那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题即父级为自适应的那我子元素就设置position:absolute;父元素设置position:relative;然后Top、Right、Bottom、Left用百分比宽度表示。
另外对象脱离正常文档流使用toprightbottomleft等属性进行绝对定位。而其层叠通过z-index属性定义。
fixed固定
fixed对象脱离正常文档流使用toprightbottomleft等属性以窗口为参考点进行定位当出现滚动条时对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点因为这是两个不同的流一个是浮动流另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。
在理论上被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标不论窗口是否滚动它都会固定在这个位置。
返回顶部按钮样式示例
!DOCTYPE html
html langen
headmeta charsetUTF-8meta http-equivx-ua-compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1title返回顶部示例/titlestyle* {margin: 0;}.d1 {height: 1000px;background-color: #eeee;}.scrollTop {background-color: darkgrey;padding: 10px;text-align: center;position: fixed;right: 10px;bottom: 20px;}/style
/head
body
div classd1111/div
div classscrollTop返回顶部/div
/body
/html
z-index
#i2 {z-index: 999;
}
设置对象的层叠顺序。
z-index 值表示谁压着谁数值大的压盖住数值小的只有定位了的元素才能有z-index,也就是说不管相对定位绝对定位固定定位都可以使用z-index而浮动元素不能使用z-indexz-index值没有单位就是一个正整数默认的z-index值为0如果大家都没有z-index值或者z-index值一样那么谁写在HTML后面谁在上面压着别人定位了元素永远压住没有定位的元素。从父现象父亲怂了儿子再牛逼也没用
自定义模态框示例
!DOCTYPE html
html langen
headmeta charsetUTF-8meta http-equivx-ua-compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1title自定义模态框/titlestyle.cover {background-color: rgba(0,0,0,0.65);position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 998;}.modal {background-color: white;position: fixed;width: 600px;height: 400px;left: 50%;top: 50%;margin: -200px 0 0 -300px;z-index: 1000;}/style
/head
bodydiv classcover/div
div classmodal/div
/body
/html
opacity
用来定义透明效果。取值范围是0~10是完全透明1是完全不透明。和rgba()的区别:
opacity改变元素\子元素的透明度效果rgba()只改变背景颜色的透明度效果
综合示例
顶部导航菜单
!DOCTYPE HTML
html
headmeta charsetUTF-8meta http-equivx-ua-compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1titleli标签的float示例/titlestyle/*清除浏览器默认外边距和内填充*/* {margin: 0;padding: 0;}a {text-decoration: none; /*去除a标签默认的下划线*/}.nav {background-color: black;height: 40px;width: 100%;position: fixed;top: 0;}ul {list-style-type: none; /*删除列表默认的圆点样式*/margin: 0; /*删除列表默认的外边距*/padding: 0; /*删除列表默认的内填充*/}/*li元素向左浮动*/li {float: left;}li a {display: block; /*让链接显示为块级标签*/padding: 0 15px; /*设置左右各15像素的填充*/color: #b0b0b0; /*设置字体颜色*/line-height: 40px; /*设置行高*/}/*鼠标移上去颜色变白*/li a:hover {color: #fff;}/*清除浮动 解决父级塌陷问题*/.clearfix:after {content: ;display: block;clear: both;}/style
/head
body
!-- 顶部导航栏 开始 --
div classnavul classclearfixlia href玉米商城/a/lilia hrefMIUI/a/lilia hrefioT/a/lilia href云服务/a/lilia href水滴/a/lilia href金融/a/lilia href优品/a/li/ul
/div
!-- 顶部导航栏 结束 --
/body
/html