概述
一.CSS的基本介绍
前面已经学习了HTML,了解到HTML是一种超文本标记语言,它是使用标记标签来描述网页,而一般情况下HTML输入文本,如果想要将文本设置成好看的样式,就需要借助今天所学习CSS(Cascading Style Sheet)来实现,当浏览器读取到CSS样式时,就会按照这个样式对文本进行渲染,达到我们想要的文本效果。
二.CSS的引用方式
方法一:行内样式(同时行内样式的优先级最高,后文会讲到)
<div style="color: red;">今天天气真好</div>
方法二:内部样式(需要在head标签内加入style标签)
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
#d1{
border: 1px solid black;
}
.c1{
height: 50px;
width: 50px;
background-color: blue;
border: 1px solid red;
float: left;
}
.c2{
height:20px;
background-color: darkgray;
}
</style>
方法三:外部样式(单独建立一个CSS文件,然后在在html文件中导入)
<link rel="stylesheet" href="此处写CSS的文件名">
三.CSS选择器
1.基本选器
- 标签选择器
p {color: "red";}
- ID选择器
#i1 {
background-color: red;
}
- 类选择器
.c1 {
font-size: 14px;
}
p.c1 {
color: red;
}
- 通用选择器
* {
color: yellow;
}
注意:标签中的class属性若有多个,应该用空格分开。
2.组合选择器
- 后代选择器
li a {
color: green;
}
注意:li和a之间要用空格隔开, 表示使li内部的a标签变成黄色。
- 儿子选择器
div>a {
font-size:20px;
}
选择所有父级是div标签的a标签,字体大小变成20px。
- 毗邻选择器
div+p {
margin: 5px;
}
选择所有紧接着div标签之后的p标签
- 弟弟选择器
#i1~p {
border: 2px solid royalblue;
}
ID为i1后面的所有的p标签(二者是同代关系)
3.属性选择器
/*用于选取带有指定属性的元素。*/
p[title] {
color: red;
}
/*用于选取带有指定属性和值的元素。*/
p[title="213"] {
color: green;
}
4.分组与嵌套
- 分组:当有n个元素有同样的样式时,无需将其样式再写n遍,我们只需要将其元素名用逗号隔开即可,如下所示:
div, p,a {
color: red;
font-size:30px;
}
- 嵌套:多种选择器可以混合使用,例如:(将c1内部类中的p标签字体颜色设置为红色)
.c1 p {
color: red;
}
5.选择器的优先级
- 越靠近标签的优先级越高(就近原则)
- 权重的计算
1. 内联样式1000(直接写在标签中的style)
2. ID选择器100
3. 类选择器10
4. 元素选择器1
div#d1(101) div.c1(11)
注意:通过添加 !important方式来强制让样式生效,但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。
6.伪类选择器
/* 未访问的链接 */
a:link {
color: white;
}
/* 已访问的链接 */
a:visited {
color: yelow;
}
/* 鼠标移动到链接上 */(非常重要,划重点划重点)
a:hover {
color: #FF00FF
}
/* 选定的链接 */ (不常用)
a:active {
color: #0000FF
}
/*input输入框获取焦点时样式*/
input:focus {
outline: none;
background-color: #eee;
}
7.伪元素选择器
/*在p元素之后插入内容*/
p:after {
content:"[?]";
color:blue;
}
/*在p元素之前插入内容*/
p:before {
content:"*";
color:red;
}
以上两个伪元素选择器多用于清除浮动,关于浮动后面会讲到。
/*给首字母设置样式*/(不常用)
p:first-letter {
font-size: 48px;
color: red;
}
四.关于CSS的常用属性
1.字体属性
/*family为设置字体,size为字体大小,weight为字体粗细,color为字体颜色*/
div{
font-family:"Microsoft JhengHei Light",serif;
font-size: 20px;
font-weight: bold;
color:red;
}
2.文本属性
- text-align 对齐(重要)
- text-decoration 装饰 (去除a标签的下划线(text-decoration: none))
- text-indent 首行缩进
div{
text-align: center;
text-decoration: none;
text-indent: 10px;
}
3.color属性
- red (直接写名字)
- #FF0000
- rgb(255, 0, 0) --> rgba(255,0,0,0.5)(a代表透明度)
div{
color:red;
}
div{
color:#ffff;
}
div{
color:rgb(255,255,255);
}
div{
color:rgba(255,21,21,3);
}
4.边框属性border
- border-width (边框宽度)
- border-style (边框样式)
- border-color (边框颜色)
- border-radius将边框变成圆角
div{
border-width: 20px;
border-style: solid;
border-color: #ffff;
}
简写:
div{
border:2px solid red;
border-radius: 50%;
}
5.背景属性
- background-color 背景颜色
- background-image 背景图片
div{
background-color: #204982;
background-image: url();
}
背景重复
repeat(默认):背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
*/
background-repeat: no-repeat;
/*背景位置*/
background-position: right top;
/*background-position: 200px 200px;*/
简写为:background:rede url('图片名') no-repeat right top;
/*页面滚动,背景图片不动*/
div{
background-attachment: fixed;
}
6.CSS盒子模型(分为以下四个内容)
- content (内容)
- padding (内填充) 调整内容和边框之间距离时使用这个属性
- border (边框)
- margin (外边距) 多用于调整调整标签之间的距离 (注意两个挨着的标签margin取最大值)
/*margin外边距*/
body{
margin-top: 20px;
margin-bottom: 20px;
margin-left: 20px;
margin-right: 20px;
}
简写:
div{
margin:20px 10px 30px 50px;(上右下左)
}
margin也常用来居中盒子
div{
margin: 0 auto;
}
/*padding内填充*/
body{
padding-bottom: 20px;
padding-top: 20px;
padding-left:20px;
padding-right:20px;
}
简写:
div{
padding:20px 30px 10px 5px;(上右下左)
}
提供一个,用于四边;
提供两个,第一个用于上-下,第二个用于左-右;
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
提供四个参数值,将按上-右-下-左的顺序作用于四边;
7.display属性
- inline(让其具有内联标签的特性)
- block (让其具有块级标签的特性)菜单里面的a标签可以设置成block
- inline-block(独占一行,也可设置高度和宽度)
- none (不让标签显示,不占位)
8.float(浮动)属性
- 多用于实现布局效果
1. 顶部的导航条
2. 页面左右分栏 - float
1. 任何标签都可以浮动,浮动之后都会变成块级 a标签float之后就可以设置高和宽 - float取值:
1. left:向左浮动
2. right:向右浮动
3. none:默认值,不浮动
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
9.clear属性
作用:
clear 清除浮动–> 清除浮动的副作用(内容飞出,父标签撑不起来)
clear取值:
1.left 在左侧不允许浮动元素。
2.right 在右侧不允许浮动元素。
3.both 在左右两侧均不允许浮动元素。
4.none 默认值。允许浮动元素出现在两侧。
5.inherit 规定应该从父元素继承 clear 属性的值。
.clearfix:after {
content: "";
display: "block";
clear: both;
}
注意:clear属性只会对自身起作用,而不会影响其他元素。
10.overflow溢出属性
取值 | 描述 |
---|---|
visible | 默认值。内容不会被修剪,会呈现在元素框之外。 |
hidden | 内容会被修剪,并且其余内容是不可见的。 |
scroll | 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 |
auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 |
inherit | 规定应该从父元素继承 overflow 属性的值。 |
11.z-index
设置对象的层叠顺序。
- z-index 值表示谁压着谁,数值大的压盖住数值小的,
- 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
- z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
- 从父现象:父亲怂了,儿子再牛逼也没用
#i2 {
z-index: 1000;
}
12.opacity属性
用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。
13.定位(position)
- static
static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。
- relative(相对定位)
相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。
- absolute(绝对定位)
定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。
另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
最后
以上就是辛勤糖豆为你收集整理的前端基础学习之CSS的全部内容,希望文章能够帮你解决前端基础学习之CSS所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复