前端开发技术之css样式学习笔记分享
概述
前端培训开发中将前端结构化,html 是文档结构、css 是设置样式(美化页面)、js是逻辑结构
重点是 "选择器" 和 "盒子模型"
发展史
CSS1.0CSS2.0:DIV(块)+CSS,HTML与CSS结构分离的思想,网页变得简单,SEOCSS2.1:浮动,定位CSS3.0:圆角、阴影、(动画…浏览器兼容性~)
快速入门
1. 位置
行内关联 :就是在标签内部设置样式,在标签内 写style <div id ="env" style ="color:red;"></div>
内部关联和 html 在一个文件中,即写入head 里面<html>
<head>
<style> 样式内容 </style>
</head>
<body></body>
</html>外部关联就是将css 专门写成一个单独的文件<link rel="stylesheet" href="css/style.css" />
2. 导入方式
主要是外部关联的方式,如何导入
使用 link 关键字,在href 加入地址
使用improt <style>@import url("css/style.css");</style>
3. 优先级
就近原则,谁离的近 谁的样式就生效 ---行内样式离的最近
基本选择器
1. 标签选择器 --标签名
<style> body{ //具体的样式 } div{ //具体的样式 } </style>
2. 类选择器 -- ".类名"
<style> .classname{ //具体的样式 } </style>
3. Id 选择器 --“#id名”
<style> #env{ //具体的样式 } </style>
4. 优先级关系
id 选择器>类选择器>标签选择器
高级选择器
1. 层次选择器
可以依据 html 文档数的层次来进行 样式的选择设置
后代选择器
<style> div p{ //div 标签下的 p 标签样式 } </style>
子代选择器
<style> div>p{ //div 标签下的第一个 p 标签样式 } </style>
相邻/兄弟选择器--/相邻兄弟选择器:只选择一个,相邻(向下)/
<style> .classname+p{ //classsname 后一个标签---非子标签 } </style>
通用选择器
<style> .classname-p{ //classsname 后所有的标签 } </style>
2. 伪类结构选择器
概述:什么是伪类,就是有逻辑的,并没有直接指明是 那里变化,就是依据逻辑位置来判断
使用:标签、类、id 后 使用:
<style> ul li:first-child{/*ul的第一个子元素*/ background: aqua; } ul li:last-child{/*ul的最后一个子元素*/ background: blue; } /*选中p1:定位到父元素,选择当前的第一个元素 选择当前p元素 的父级元素,选中父级元素的第一个, ⚠️⚠️⚠️注意:并且是当前元素才生效!*/ p:nth-child(1){ background: orange; } p:nth-of-type(2){/*选中父元素下的,第2个p元素*/ background: red; } a:hover{ color: green; } </style>
3. 属性选择器 --常用
属性名=属性值(正则)
= 表示绝对等于
*=表示包含
^=表示以...开头
$=表示以...结尾
存在id属性的元素a[]{}
<style> a[id]{ background: yellow; } a[id=first]{/*id=first的元素*/ background: green; } a[class*="links"]{/*class 中有links的元素*/ background: bisque; } a[href^=http]{/*选中href中以http开头的元素*/ background: aquamarine; } a[href$=pdf]{/*选中href中以http开头的元素*/ background: aquamarine; } </style>
文字美化
font-family:字体 font-size:字体大小 font-weight:字体粗细 颜色–>color rgb rgba 文本对齐方式–>text-align:center 首行缩进–>text-indent:2em 行高–>line-height:300px; 下划线–>text-decoration > text-decoration:underline/*下划线*/ > text-decoration:line-through/*中划线*/ > text-decoration:overline/*上划线*/ > text-decoration:none/*超链接去下划线*/ 图片和文字 中心线在一行 img,span{vetical-align:middle} 背景:background 渐变背景网址:https://www.grabient.com
盒子模型
margin --外边距离:就是容器(元素)边框离父 容器的边距位置可以巧妙的使用外边框,使容器居中
padding -- 内边距:边框 向内 一圈的距离
border --边框 :就是容器的框框,参数 border:粗细 样式 颜色border:1px solid red;边框 style 参数:none定义无边框。hidden与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。dotted定义点状边框。在大多数浏览器中呈现为实线。dashed定义虚线。在大多数浏览器中呈现为实线。solid定义实线。double定义双线。双线的宽度等于 border-width 的值。groove定义 3D 凹槽边框。其效果取决于 border-color 的值。ridge定义 3D 垄状边框。其效果取决于 border-color 的值。inset定义 3D inset 边框。其效果取决于 border-color 的值。outset定义 3D outset 边框。其效果取决于 border-color 的值。inherit规定应该从父元素继承边框样式。
盒子的大小计算:margin+border+padding+内容,不然会有对不齐--或者windows 窗口出现滑块
浮动
1. 标准文档流
文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式。并最终窗体自上而下分成一行行,并在每行中从左至右的顺序排放元素。
标准文档流的两种等级:
块级元素 <div>\ <h>\ <li>
行级元素 <p>\ <span>
2. dipaly
参数block:块元素inline行内元素inline-block是块元素,但是可以内联,在一行none消失
使用示例:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--block 块元素
inline 行内元素
inline-block 是块元素,但是可以内联 ,在一行
-->
<style>
div{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
span{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
</style>
</head>
<body>
<div>div块元素</div>
<span>span行内元素</span>
</body>
</html>
3. float
clear:both
3. 对比
定位(重点)--后续
1. 相对定位
相对于自己原来的位置偏移
2. 绝对定位(absolute)
基于某一位置进行定位:上下左右~ 相对于网页 位置不动
1、没有父级元素定位的前提下,相对于浏览器定位
2、假设父级元素存在定位,我们通常会相对于父级元素进行偏移
3、在父级元素范围内移动
总结:相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留
3. 固定定位(fixed)
在某一位置固定不动
比如:导航栏位于浏览器上方位置,固定不动--execle 的锁定位置
层级(z-index)
和ps中的图层概念相似,可以相互覆盖--遮罩
可以和 透明度 (opacity) 相互配合使用