day33 前端之css

css简介

CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。
# 语法结构
选择器 {
属性名1,属性值
属性名2,属性值
}
# css注释
/*单行注释*/
/*
多行注释
多行注释
*/
/*功能注释注释*/
# css的三种引入方式
1.<style>
h1 {
color:red;
}
2.<link rel="stylesheet" href="mycss.css">
3.<h1 style="color:blue"> hello baby<h1> # 行内式

基本选择器

1.id选择器
2.类选择器
3.标签选择器
4.通用选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*id选择器*/
#d1 {
color: green;
} /*类选择器*/
.c1 {
color: green;
}
/*标签选择器*/
span {
color: gray;
}
/* 通用选择器*/
* {
color: red;
}
</style> </head>
<body>
<div id="d1">div1</div>
<div>div2</div>
<span class="c1">span1</span>
<span class="c2">span2</span>
</body>
</html>

属性选择器

<style>
[username] { # 根据属性查找
color: red;
} [username='ly'] { # 根据条件查找
color: red;
} div[username='ly'] { # 可以加div限制
color: red;
}
</style>
</head>
<body>
<div username="ly">div</div>
<span username>span</span>
<p username="ly">p</p>
</body>

组合和嵌套

后代选择器:
/*li内部的a标签设置字体颜色*/
li a {
color: green;
}
# /*逗号表示并列关系*/
#d1, .c1 {
color: red;
}

伪类选择器

    <style>
a {
color: gray;
} # /*鼠标悬浮时候的样式, 掌握主*/
a:hover {
color: red;
} # /*按住鼠标左键不放松的样式*/
a:active {
color: green;
} # /*访问之后的样式*/
a:visited {
color: blue;
}
</style>
</head>
<body>
<a href="">点我哦</a>
</body>

伪元素选择器

<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p:first-letter { # 设置首字母颜色
color: red;
font-size: 24px; # 设置字体大小
} p:before { # 给字体前面加字,但不能选择加的字
content: 'ly is nb';
font-size: 28px;
color: red;
} /*解决父标签塌陷问题*/
p:after {
content: 'ly is nb';
font-size: 28px;
color: green;
}
</style>
</head>
<body>
<p>
当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,
</p>
</body>

选择器的优先级

选择器优先级
1. 选择器相同的情况
离谁越近就听谁的
2. 选择器不同的情况
行内式 > id选择器 > 类选择器 > 标签选择器

设置长宽

<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
width: 100px;
height: 100px;
background: red; # 背景颜色
}
span {
# /*行内元素不能设置宽和高*/
/*width: 100px;*/
/*height: 100px;*/
background: green;
}
</style>
</head>
<body>
<div>div</div>
<span>span</span>
</body>

字体属性

font-size: 20px;
/*颜色的英文名*/
color: limegreen; /*范围是0-255*/
color: rgb(101,119,120); # rgb颜色设置 /*a的范围是0-1*/
color: rgba(101,119,120, 0.9); # 透明度 /*颜色编号,表示的颜色最多,1600w*/
/*color: #757575;*/ # rgb颜色编号
/*color: red;*/ font-weight: bolder; # 字体加粗 /* 范围是100-900的整数*/
font-weight: 800; # 自定义设置字体粗细

文字属性

        p {
text-align: left; # 文字靠左对齐
text-align: center; # 文字居中
text-align: right; # 文字靠右对齐 text-decoration: underline; # 文字加下划线
text-decoration: line-through; # 文字加中划线
text-decoration: overline; # 文字加上划线
font-size: 20px; # 设置文字大小
text-indent: 40px; # 首行缩进
}
a { # 去掉“点我”的下划线
# 重点掌握
text-decoration:none;
}
<a href="">点我</a>

背景属性

    <style>
div {
width: 400px;
height: 400px;
background: red; # 背景颜色
background-color: red;
background-image: url("1234.png"); # 导入背景图片的地址
background-repeat: repeat-x; # 设置x轴不重复
background-repeat: repeat-y; # 设置y轴不重复
background-repeat: no-repeat; # 设置不重复
background-position: center center; # 设置图片居中
background-position: 20px 50px; # 移动图片 /*只要前缀一样的情况,都可以简写*/
background: no-repeat center center url("1234.png"); #这行就表示上面一串了
border: 3px solid red;
}
</style>

边框

简写的:
border-radius: 50% # 把正方形变成一个圆形:
border: 3px solid red; # 简写代表上面一串代码
边框样式:
1.none:无边框
2.dotted:点状虚线边框
3.dashed:矩形虚线边框
4.solid:实线边框
p {
border: 1px solid red;
border-width: 3px;
border-style: dotted;
border-color: red; border-left-color: red; # 设置左边边框
border-left-style: solid; # 设置边框实心
border-left-width: 10px; # 设置边框的粗细 border-top-color: green; # 设置边框上边
border-top-style: dotted;
border-top-width: 5px; border-right-color: green; # 设置右边
border-right-style: dotted;
border-right-width: 5px; border-bottom-color: green; # 设置上面
border-bottom-style: dotted;
border-bottom-width: 5px; border: 3px solid red; # 简写代表上面一串代码
} div {
width: 200px;
height: 200px; # 成一个正方形
background: red;
border-radius: 100px; # 把四个角往里面缩成一个圆形
border-bottom-left-radius: 100px; # 左下方缩角
border-bottom-right-radius: 100px; # 右下方缩角
border-radius: 50%; # 简写,直接成圆角
}
</style>

display属性

隐藏两种方式:
1.display: block;隐藏之后,被隐藏的位置还在
2.display: none;隐藏之后,被隐藏的位置不在
#d1 {
width: 100px;
height: 100px; # 需求是两个块级元素在一行
background: red;
display: inline-block; # 块级元素和行内元素都具备
} #d2 {
width: 100px;
height: 100px;
background: green;
display: inline-block; # 块级元素和行内元素都具备
} #d3 { # 需求是把两个行内元素放在两行
width: 100px;
height: 100px;
display: block; # 把行内元素设置为块级元素
background: red;
} #d4 {
width: 100px;
height: 100px;
display: block; # 把行内元素设置为块级元素
background: green;
} #d5 {
width: 100px;
height: 100px;
/*隐藏*/
display: none; # 用来隐藏之后,被隐藏的位置不在
background: red; } #d6 {
width: 100px;
height: 100px;
display: block; # 用来隐藏之后,被隐藏的位置还在
background: green;
}
</style>

css盒子模型

盒子属性:
1.margin:用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
2.padding:用于控制内容与边框之间的距离;
3.Border(边框):围绕在内边距和内容外的边框。
4.Content(内容):盒子的内容,显示文本和图像。
外边距简写:margin: 5px 10px 15px 20px;
顺序:上、右、下、左
居中:margin: 0 auto;
内填充:padding: 5px 10px 15px 20px;
# 第一个值代表上下,第二个代表左右
margin:10px 20px;
# 第一个值代表上,第二个代表左右,第三个代表下
margin:10px 20px 30px;
# 上 右 下 左
margin:10px 20px 30px 40px; # 面试题:盒子和盒子之间margin取最大的值,它们是不叠加的。
#d1 {
width: 100px;
height: 100px;
background: red;
margin-bottom: 20px;
} #d2 {
width: 100px;
height: 100px;
background: green;
margin-top: 50px;
} # 在盒子水平居中
#d1 {
width: 200px;
height: 200px;
border: 3px solid red; } p {
width: 20px;
height: 20px;
background: green;
/*margin-left: 90px;*/
/*水平居中*/
margin: 0 auto; # 水平居中
}

浮动

float(浮动):
在 CSS 中,任何元素都可以浮动。
浮动元素会生成一个块级框,而不论它本身是何种元素。
关于浮动的两个特点:
1.浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
2.由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
三种取值:
1.left:向左浮动
2.right:向右浮动
3.none:默认值,不浮动
clear属性规定元素的哪一侧不允许其他浮动元素:
1.left:在左侧不允许浮动元素。
2.right:在右侧不允许浮动元素。
3.both:在左右两侧均不允许浮动元素。
4.none:默认值。允许浮动元素出现在两侧。 5.inherit:规定应该从父元素继承 clear 属性的值。
<style>
#d1 {
width: 100px;
height: 100px;
background: green;
float: left; # 让背景颜色浮动
} #d2 {
width: 110px;
height: 110px;
background: red;
/*float: left;*/
}
</style>

浮动带来的塌陷问题

    <style>
#d1 {
border: 3px solid blue;
} #d2 {
width: 100px;
height: 100px;
background: green;
float: left;
} #d3 {
width: 100px;
height: 100px;
background: red;
float: left;
}
/*#d4 {*/
/* !*height: 100px;*!*/
/* !*清除浮动*!*/ # 不让左边出现浮动的盒子
/* clear: left;*/
/*}*/ # 谁塌陷给给加clearfix:after(通用解决方式)
.clearfix:after { # 伪元素选择器
content: '';
display: block; # 改为块级元素
clear: both;
}
</style>

overflow溢出属性

溢出属性:
1.visible:默认值。内容不会被修剪,会呈现在元素框之外。
2.hidden:内容会被修剪,并且其余内容是不可见的。
3.scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
4.auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
5.inherit:规定应该从父元素继承 overflow 属性的值。
代码:文本溢出
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p {
width: 100px;
height: 100px;
border: 3px solid red;
/*overflow: hidden;*/ # 设置内容会被修剪
overflow: scroll; # 设置滚动条属性
}
</style>
</head>
<body>
<p>由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。</p>
</body>

溢出的案例

圆形头像:
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
background: #4e4e4e; # 设置背景颜色
}
#d1 {
width: 100px;
height: 100px;
border: 3px solid white; # 设置一个框
border-radius: 50%;
margin: 0 auto;
overflow: hidden;
}
#d1 img {
width: 100%; # 设置图片的宽度100%
}
</style>
</head>
<body>
<div id="d1">
<img src="1234.png" alt="">

定位

1.relative(相对定位):relative的一个主要用法:方便绝对定位元素找到参照物。
2.absolute(绝对定位):设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。
3.fixed(固定):fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。
<style>
#d1 {
width: 100px;
height: 100px;
background: red;
/*默认值,不能移动位置*/
/*position: static;*/ /*相对定位了, 只要改为relative, 那么就算你位置不发生移动,标签的性质也已经发生了改变
有不能移动位置改为可以移动位置
*/
position: relative; # 相对定位
left: 100px;
top: 100px; #d2 {
width: 100px;
height: 100px;
background: red;
position: relative;
margin-left: 100px; # 绝对定位的父类
} #d3 {
width: 100px;
height: 100px;
background: green;
position: absolute; # 绝对定位
left: 100px;
top: 100px;
} #d4 {
width: 50px;
height: 200px;
background: red;
/*固定定位*/
position: fixed; # 固定定位
right: 20px;
bottom: 100px;
}
</style>

opacity

opacity:用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p {
color: red;
opacity: 0.2; # 设置透明的效果
}
</style>
</head>

最新文章

  1. localStorage与sessionStorage 的区别
  2. Android开发:程序目录结构详解
  3. linux 时间同步
  4. 几个简单的js正则验证
  5. [转]SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
  6. 用C#开发了四天的UWP应用有感
  7. encache学习教程
  8. [转]ELO等级分体系
  9. python模块结构和布局
  10. js判断手机还是pc并跳转相关页面
  11. [Effective C++ --030]透彻了解inlining的里里外外
  12. Java中几种常见排序算法
  13. 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows)
  14. Central Europe Regional Contest 2012 Problem c: Chemist’s vows
  15. Mark下js最大精确整数范围,业务中出现的疑难bug
  16. 监控工具之zabbix server3.4 部署配置
  17. vue-router(hash模式)常见问题以及解决方法
  18. 我的C#跨平台之旅(一):从 Hello World 开始
  19. Spring Security(二十五):7. Sample Applications
  20. JavaScript 初知

热门文章

  1. [转]DDR内存条rank的概念和区分
  2. Codeforces Round #735 (Div. 2)
  3. 20191310Lee_yellow缓冲区溢出实验
  4. Zabbix 4.4 离线安装 使用mariadb的踩坑,无法停止服务
  5. 使用ssh连接到centos7中docker容器
  6. 如何系统学习C 语言(中)之 联合体、枚举篇
  7. c++学习笔记(六)
  8. Django笔记&教程 2-1 URL与View关系
  9. Django 小实例S1 简易学生选课管理系统 6 实现登录逻辑
  10. vue开发中的一些简单骚操作