30
社区成员
发帖
与我相关
我的任务
分享1.行内样式
<h1 style="color=red;font-size=60px;">
2.内部样式
<head>
<style>
h1{
color:green;
font-size=520px;
}
img{
width=500px;(一定要写px)
}
</style>
</head>
3.外部样式
h1{
color=red;
font-size=40px;
}
<link rel="stylesheet" href="css文件地址">
1.规则
组成部分:
h1{
color: red;
width: 50px;
}
注释的写法 /*xxx*/
xxx为需要注释的内容
h1{
color: red;
width: 50px;
}
h1{color:red;font-size:40px;}
基本选择器包括:
*{
属性名:属性值;
}
2. 元素选择器:
- 作用:为页面中某种元素统一设置样式
- 语法:
```css
/*选中所有h1元素*/
h1{
color: orange;
width: 40px;
}
.类名{
属性名: 属性值;
}
元素的属性值不带. 但是CSS的类选择器要带.
class值是我们自定义的,按照标准:不要使用纯数字、不要使用中文、尽量使用英文与数字的组合,若由多个单词组成,用 - 链接,例如 left-menu ,且命名要有意义,做到见名知意
一个元素不能有多个class属性
一个元素的class属性可以有多个值,值之间用空格隔开
<h1 class="speak big">hello</h1>
id选择器
#id值{
属性名: 属性值;
}
/*选中类名为beauty的p元素,写法很多,展示一个最常用的*/
p.beauty {
color= blue;
}
/*选中包含rich和beauty标签的元素*/
.rich.beauty {
color= pink;
}
1.有标签名,标签名必须写在前面
2.id选择器理论上可以作为交集选择条件,但实际上基本不用,无意义
3.交集选择器中不可能出现两个元素选择器,因为一个元素不可能有两个不同的元素类型
4.用的最多的交集选择器是:元素名配合类选择器,例如:p.beauty{xx}
/*例如选中id为reimi,或者类名为carrot,或者类名为citizen的元素*/
#reimi,
.carrot,
.citizen {
font-size= 50px;
color= pink;
width= 40px;
}
1.并集选择器一般竖着写
2.任何形式的选择器,都可以作为并集选择器的一部分
3.并集选择器,常用于集体声明,可以缩小样式表体积
<ul>
<li>前端</li>
</ul>
<!--此时ul是li的父元素-->
/*选中ul中所有的li*/
ul li {
color: red;
}
/*选中ul中所有li中的a*/
ul li a {
color: green;
}
/*选中类名为subject的元素中的所有li*/
.subject li {
color: orange;
}
/*选中类名为subject元素中所有类名为front-end的li*/
.subject li.front-end {
width= 20px;
}
1.后代选择器,最终选择的是后代,不选中祖先
2.儿子,孙子,重孙子,都算作后代
3.结构要符合HTML要求,不能违规嵌套
/*div中的子代a元素*/
div>a {
color: red;
}
/*类名是person的元素中的子代a元素*/
.person>a {
color: skyblue;
}
1.子代选择器选中的是直接子代,也就是儿子元素
2.选择器可以是我们之前学过的任意一种选择器
/*选中div后相邻的兄弟p元素*/
div+P {
color: blue;
}
/*选中div后所有的兄弟p元素*/
div~p {
color: yellow;
}
div[title]{
color: red;
}
div[title="reimi"]{
color: pink;
}
div[title^="re"]{
color: pink;
}
div[title$="mi"]{
color:pink;
}
div[title*="reimi"]{
color: pink;
}
input:focus,select:focus {
color:red ;
background:blue ;
}
常用结构伪类:
注意:关于n的值
注意:关于选择条件
/*选中的元素即是既是div的直接子代p,并且是子代中的第二个元素*/
div>p:nth-child(2){
color:red ;
}
不常用结构伪类:
/*选中div的儿子元素p,但是排除第一个子元素*/
div>p:not(:first-child){
color: red;
}
input:checked {
width:50px;
height:50px;
}
div:target {
color:red ;
}
:lang(en) {
color:red ;
}
<style>
input::placeholder{
color:red ;
}
</style>
<body>
<input type="text" placeholder="请输入您的用户名">
</body>
p::before {
content:"$" ;
}
行内>ID选择器>类选择器>元素选择器>通配选择器
优先级表示的格式 (a , b , c)
a:ID选择器的个数
b:类,伪类,属性 选择器的个数
c:元素,伪元素 选择器的个数
从前到后依次比较
行内样式大于其他样式
!important 大于所有样式,一旦出现即使用important标记的元素
<p style="color:red " !important></p>
.css{
color: rgb(255,255,0)
/*or
color:rgb(100%,0%,0%)
or
color:rgba(100,100,0,1)*/
}
HEX 的原理和 rgb 一致,依然是通过:红、绿、蓝进行颜色组合,区别是需要用6个数字,分成三组来表达,格式为:#rrggbb
- 饱和度:取值范围是 0%~100%。(像色相中对应颜色**添加灰色**,0%全灰,100%没有灰)
- 亮度:取值范围是0%~100%。(0%没有亮度,所以是黑色。100%亮度太强,所以是白色)
div {
font-size:30px;
}
div {
font-family:"STCcaiyun","Microsoft YaHei",sans-serif;
}
div{
font-style:italic;
}
div {
font-weight:lighter;
}
div {
font-weight:200;
}
div{
color:rgb(112,15,30);
}
div{
text-decoration:green underline dotted red;
}
div{
text-indent:40px;
}
div{
text-align:center;
}
div{
line-height:60px;
line-height:1.5;
line-height:150%;
}
列表相关的属性,可以作用在 ul , ol , li 元素上
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| list-style-type | 设置列表符号 | 常用值如下: |
| ^^ | ^^ | none:不显示前面的标识(常用) |
| ^^ | ^^ | square:实心方块 |
| ^^ | ^^ | disc:圆形 |
| ^^ | ^^ | decimal:数字 |
| ^^ | ^^ | lower-roman:小写罗马字母 |
| ^^ | ^^ | upper-roman:大写罗马字母 |
| ^^ | ^^ | lower-alpha:小写字母 |
| ^^ | ^^ | upper-alpha:大写字母 |
| list-style-position | 设置列表符号的位置 | inside:在 li 的里面 |
| outside:在 li 的外面 | ||
| list-style-image | 自定义列表符号 | url 图片地址 |
| list-style | 复合属性 | 没有数量、顺序的要求 |
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| table-layout | 设置列宽度 | auto:自动,根据列宽内容计算(默认值) |
| fixed:固定列宽,平均分 | ||
| border-spacing | 单元格间距; 生效前提:单元格边框不能合并 | CSS中可用的长度值 |
| border-collapse | 合并单元格边框 | collapse:合并 |
| separate:不合并 | ||
| empty-cells | 隐藏没有内容的单元格; 生效前提:单元格不能合并 | show:显示,默认 |
| hide:隐藏 | ||
| caption-side | 设置表格标题的位置 | top:上面(默认值) |
| bottom:在表格下面 |
table {
table-layout:auto;
border-spacing:5px;
empty-cells:hide;
caption-side:top;
}
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| background-color | 设置背景颜色(默认背景颜色是transparent) | 复合CSS中颜色规范的值 |
| background-image | 设置背景图片 | url(图片地址) |
| background-repeat | 设置背景重复方式 | repeat:重复,铺满整个元素,默认值 |
| ^^ | repeat-x:只在水平方向重复 | |
| ^^ | repeat-y:只在垂直方向上重复 | |
| ^^ | no-repeat:不重复 | |
| background-position | 设置背景图片位置 | 通过关键字设置位置(写两个值,用空格隔开) |
| ^^ | ^^ | 水平:left,center,right |
| ^^ | ^^ | 垂直:top,center,bottom |
| ^^ | ^^ | 如果只写了一个值,另一个方向上的值取默认center |
| ^^ | ^^ | 通过长度指定坐标位置 |
| ^^ | ^^ | 以元素左上角为坐标原点,设置图片左上角的位置。 |
| ^^ | ^^ | 取两个值,分别是x坐标和y坐标 |
| ^^ | ^^ | 只写一个值,会被当作是x坐标,y坐标取center |
| background | 复合属性 | 没有数量和顺序要求 |
cursor:url(图片地址),pointer;
通过CSS中的 display 属性可以修改元素的默认显示模式,常用值如下:
| 值 | 描述 |
|---|---|
| none | 元素会被隐藏 |
| block | 元素将作为块级元素显示 |
| inline | 元素将作为行内元素显示 |
| inline-block | 元素将作为行内块元素显示 |
CSS 会把所有 HTML 元素都看成一个盒子,所有的样式也都基于这个盒子
盒子的大小 = content + 左右 padding + 左右border
关于默认宽度:
所谓的默认宽度,就是不设置 width 属性时,元素所呈现出来的宽度
总宽度=父的 content -自身左右 margin
内容区的宽度=父的 content - 自身左右margin - 自身左右 border - 自身左右 padding
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| width | 设置内容区域宽度 | 长度 |
| max-width | 设置内容区域最大宽度 | 长度 |
| min-width | 设置内容区域最小宽度 | 长度 |
| height | 设置内容区域高度 | 长度 |
| max-height | 设置内容区域最大高度 | 长度 |
| min-height | 设置内容区域最小高度 | 长度 |
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| padding-top | 上内边距 | 长度 |
| padding-right | 右内边距 | 长度 |
| padding-bottom | 下内边距 | 长度 |
| padding-left | 左内边距 | 长度 |
| padding | 复合属性 | 长度,可以设置1~4个值 |
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| border-style | 边框线风格 复合了四个方向的边框风格 | none:默认值 solid:实线 dashed:虚线 dotted:点线 double:双实线 ······ |
| border-width | 边框线宽度 复合了四个方向的边框宽度 | 长度,默认3px |
| border-color | 边框线颜色 复合了四个方向的边框颜色 | 颜色,默认黑色 |
| border | 复合属性 | 值没有顺序和数量的要求 |
| border-left border-left-style border-left-width border-left-color border-right border-right-style border-right-width border-right-color border-top border-top-style border-top-width border-top-color border-bottom border-bottom-style border-bottom-width border-bottom-color | 分别设置各个方向的边框 | 同上 |
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| margin-left | 左外边距 | CSS中的长度值 |
| margin-right | 右外边距 | CSS中的长度值 |
| margin-top | 上外边距 | CSS中的长度值 |
| margin-bottom | 下外边距 | CSS中的长度值 |
| margin | 复合属性,可以写1~4个值,规律同 padding | CSS中的长度值 |
什么是 margin 塌陷?
第一个子元素的上margin会作用在父元素上,最后一个子元素的下margin会作用在父元素上
如何解决 margin 塌陷?
什么是 margin 合并?
上面兄弟元素的下外边距和下面兄弟元素的上外边距会重合,取一个最大值,而不是相加
如何解决 margin 塌陷?
无需解决,布局时上下兄弟元素,只设置一个上下外边距即可
| CSS属性名 | 功能 | 属性值 |
|---|---|---|
| overflow | 溢出内容的处理方式 | visible:显示,默认值 hidden:隐藏 scroll:显示滚动条,不论内容是否溢出 auto:自动显示滚动条,内容不溢出不显示 |
| overflow-x | 水平方向溢出内容的处理方式 | 同 overflow |
| overflow-y | 垂直方向溢出内容的处理方式 | 同 overflow |
visibility 属性默认值是 show ,如果设置为 hidden,元素会隐藏
元素虽然看不见,但还是占有原来的位置(元素的大小依然保持)
设置 display:none ,就可以让元素隐藏
彻底的隐藏,不但看不见,也不占用任何位置,没有大小宽高
margin-top:值为(父元素content-子元素盒子总高)/2 vertical-align:middle; 补充:若想绝对垂直居中,父元素 font-size 设置为0display:block;·font-size:0;。如果改行内部还有文本,那么单独设置font-size。最初,浮动是用来实现文字环绕图片效果的,现在浮动是最主流的页面布局方式之一
overflow:hiddenclear:both.parent::after {
content:"";
display:block;
clear:both;
}
1.如何实现相对定位?
position:relative 即可实现相对定位left、right、top、bottom 四个属性调整位置2.相对定位的参考点在哪里?
3.相对定位的特点:
left 不能和 right 一起设置,top 不能和 bottom 一起设置margin 调整位置,但不推荐1.如何设置绝对定位?
position:absolute 即可实现绝对定位left、right、top、bottom 四个属性调整位置2.绝对定位的参考点在哪里?
3.绝对定位元素的特点:
left 不能和 right 一起设置,top 不能和 bottom 一起设置margin 调整位置,但是不推荐这样做.outer:hover .box2 {
left:200px;
}
1.如何实现固定定位?
position:fixed 即可实现left、right、top、bottom 四个属性调整位置2.固定定位的参考点在哪里?
3.固定定位元素的特点
left 不能和 right 一起设置,top 不能和 bottom 一起设置margin 调整位置,但是不推荐这样做1.如何实现粘性定位?
position:sticky 即可实现left、right、top、bottom 四个属性调整位置2.粘性定位的参考点在哪里?
3.粘性定位元素的特点:
topmargin 调整位置,但不推荐.item {
position:sticky;
top:0;
}
z-index 调整元素的显示层级z-index 的属性值是数字,没有单位,值越大显示层级越高z-index 才有效z-index 值大的元素,仍然没有覆盖掉 z-index 值小的元素,那么请检查其包含块的层级让定位元素的宽充满包含块
left 和 right 为0 position:absolute;
left:0;
right:0;
top 和 bottom 的值设为0 position:absolute;
top:0;
bottom:0;
让定位元素在包含块中居中
margin:xxx 时,子元素必须有宽高,不然就是充满父元素position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
position:absolute;
left:50%;
right:50%;
margin-left:width/2;
margin-right:height/2;
960~1200 像素之间| 位置 | < |
|---|---|
| 顶部导航条 | topbar |
| 页头 | header、page-header |
| 导航 | nav、navigator、navbar |
| 搜索框 | search、search-box |
| 横幅、广告、宣传图 | banner |
| 主要内容 | content、main |
| 侧边栏 | aside、sidebar |
| 页脚 | footer、page-footer |
很多元素都有默认样式,例如:
在早期,元素默认样式,能够让我们快速绘制网页,但如今网页的设计越来越复杂,内容越来越多,而且很精细,这些默认样式会给我们绘制网页带来麻烦;而且这些默认样式在不同浏览器上呈现出的效果也不同,座椅我们需要重置这些默认样式方案一:使用全局选择器
* {
margin:0;
padding:0;
}
这种方法在简单案例中可以使用,但是实际开发中不会使用,因为 * 选择的是所有元素,而并不是所有元素都有默认样式;而且我们重置时,有时候是需要做特定处理的,比如,想让 a 元素的文字是灰色,其他元素文字是蓝色
方案二:reset.css
选择到具有默认样式的元素,清空其默认样式经过 reset 后的网页,好似“一张白纸”,开发人员可以根据设计稿,精细的去添加字体的样式
方案三:Normalize.css
Normalize.css 是一种最新方案,他在清除默认样式的基础上,保留了一些有价值的默认样式
相对于 reset.css , Normalize.css 有如下优点:
备注:Normalize.css 的重置,和 reset.css 相比,更加的温和,开发时可以根据实际情况进行选择