CSS基础

CSS 简介

CSS 指层叠样式表 (Cascading Style Sheets)

CSS 语法


CSS注释以 /* 开始, 以 */ 结束

CSS Id 和 Class

  • HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。
  • class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,可以在多个元素中使用。在 CSS 中,类选择器以一个点"."号显示
  • 你也可以指定特定的HTML元素使用class。p.center {text-align:center;}所有的 p 元素使用 class="center" 让该元素的文本居中:

CSS 创建

插入样式表的方法有三种:
  • 外部样式表(External style sheet):当样式需要应用于很多页面时,外部样式表将是理想的选择
  😉不要在属性值与单位之间留有空格(如:"margin-left: 20 px" ),正确的写法是 "margin-left: 20px" 。
  • 内部样式表(Internal style sheet):当单个文档需要特殊的样式时,就应该使用内部样式表
  • 内联样式(Inline style)
  • 多重样式
  1. 如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。 (如果重复的话,按优先级,不重复都要)
  2. 内联样式 > id 选择器 > 类选择器 = 伪类选择器 = 属性选择器 > 标签选择器 = 伪元素选择器
  3. 内联样式 > 内部样式表 > 外部样式表 > 浏览器样式表 
😉如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。
1、ID  #id  2、class  .class3、标签/元素  p    4、通用  *5、属性  [type="text"]
6、伪类 :hover   7、伪元素 ::first-line     8、子选择器、相邻选择器

CSS 背景

当使用简写属性时,属性值的顺序为:
background-color
background-image
background-repeat
background-attachment
background-position

CSS 文本格式

  • 文本颜色
body {color:red;}
h1 {color:#00ff00;}
h2 {color:rgb(255,0,0);}


  • 文本的对齐方式:text-align
  • 文本修饰 text-decoration
  • 文本转换 text-transform
  • 文本缩进 text-indent
  • 字符之间的空间 letter-spacing
  • 行之间的空间 line-height
  • ...

CSS 字体

  • 字体系列
p{font-family:"Times New Roman", Times, serif;}
font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体
注意: 如果字体系列的名称超过一个字,它必须用引号,如Font Family:"宋体"。
  • 字体系列 font-style
  • 字体大小 font-size
你不能通过调整字体大小使段落看上去像标题,或者使标题看上去像段落。
请务必使用正确的HTML标签,就<h1> - <h6>表示标题和<p>表示段落:
1em和当前字体大小相等。在浏览器中默认的文字大小是16px。
也可以用百分比
  • font 在一个声明中设置所有的字体属性,不用加逗号

CSS 链接

a:link {color:#000000;}      /* 未访问链接*/
a:visited {color:#00FF00;}  /* 已访问链接 */
a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
a:active {color:#0000FF;}  /* 鼠标点击时 */
相当于生命周期钩子,可以对颜色,大小,形式等进行调节

CSS 列表

list-style-type
list-style-image: url('sqpurple.gif');

CSS 表格

边框:
边框折叠:border-collapse
宽度高度
文本对齐
表格填充:padding
表格颜色

CSS 盒子模型


width 对应的是content
 border-color单独使用是不起作用的,必须得先使用border-style来设置边框样式

CSS 边框

  • 边框样式 border-style:dotted dashed solid groove
  • 边框宽度 border-width
  • 边框颜***border-color
  • 边框-单独设置各边 border-top-style
border-style属性可以有1-4个值,4:顺时针 3:上,左右,底 2:上底,左右。
不可以加逗号!!!(字体加逗号是因为备用)
段落也可以有边框属性

CSS 轮廓


轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
轮廓(outline)属性指定元素轮廓的样式、颜色和宽度。

CSS margin(外边距)

Margin:margin-top...
😉类似于border-style,只不过值是px或者百分比

CSS padding(填充)

用法类似于margin

CSS 分组和嵌套选择器

  • 分组选择器
为了尽量减少代码,你可以使用分组选择器。每个选择器用逗号分隔
h1,h2,p
{
    color:green;
}
  • 嵌套选择器
p.class

CSS 尺寸

CSS Display(显示) 与 Visibility(可见性)

display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏

隐藏元素

  • {display:none;}  可以隐藏某个元素,且隐藏的元素不会占用任何空间
  • {visibility:hidden;} 该元素虽然被隐藏了,但仍然会影响布局。

CSS Display - 块和内联元素

  • 块元素是一个元素,占用了全部宽度,在前后都是换行符。<h1>、<p>、<div>
  • 内联元素只需要必要的宽度,不强制换行 <span>  <a>
li {display:inline;}
span {display:block;}

CSS Position

  • static
HTML 元素的默认值,即没有定位,遵循正常的文档流对象。
静态定位的元素不会受到 top, bottom, left, right影响。
  • relative
相对定位元素的定位是相对其正常位置。
移动相对定位元素,但它原本所占的空间不会改变。
相对定位元素经常被用来作为绝对定位元素的容器块。
  • fixed
元素的位置相对于浏览器窗口是固定位置。
即使窗口是滚动的它也不会移动:
  • absolute
绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>:
  • sticky
元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
  • 重叠的元素
元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素
z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)
 z-index:-1;
  • 裁剪元素的外形 clip:rect(0px,60px,200px,0px);
  • 滚动条来显示元素内溢出的内容 overflow: scroll;
  • cursor:pointe

CSS Float

  • 几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻
  • 清除浮动  clear:both; 指定元素两侧不能出现浮动元素。
!!!! 多层次标签耦合

CSS 布局

  • 元素居中对齐:margin: auto; 如果没有设置 width 属性(或者设置 100%),将不起作用
  • 文本居中对齐:text-align: center
  • 图片居中对齐:display: block;放入块中,再margin: auto; 
  • 左右对齐:position: absolute;当使用 position 来对齐元素时, 通常 <body> 元素会设置 margin 和 padding
                        使用 float 方式,子元素设置了浮动且将溢出,这时可以使用 "overflow: auto;" 来解决该问题
  • 垂直居中对齐:padding: 70px 0;---父元素的高度不固定
                         使用 line-height 如果文本有多行vertical-align: middle; 此时应该用<!DOCTYPE html>
                         使用 position 和 transform
                         position: absolute;
                         top: 50%;
                         left: 50%;
                         transform: translate(-50%, -50%);(返回元素大小的一半)
                         当元素宽度小于父元素时(必须设定宽度),里面加一个div空标签,把它的高度设为100%,宽度设置为0,再给它一个vertical-align:middle样式,
                         同样的给class="box"的div一个vertical-align:middle样式,那么box就可以在div里面垂直居中了。

CSS 组合选择符

  • 后代选择器(以空格     分隔)
  • 子元素选择器(以大于 > 号分隔)只能选择作为某元素直接/一级子元素的元素。外面不能包裹类似<span>
  • 相邻兄弟选择器(以加号 + 分隔) 可选择紧接在另一元素后的元素,且二者有相同父元素
  • 普通兄弟选择器(以波浪号 ~ 分隔)

CSS 伪类---重点学习

伪类可以理解为可以直接使用的函数:
p > i:first-child
input:focus
li a:hover:not(.active)  链式

CSS 伪元素

p::firsr-line

CSS 导航栏

链式反应,当根据伪类,更改对应的满足条件的元素的格式

CSS 提示工具

/* 鼠标移动上去后显示提示框 */
.tooltip:hover .tooltiptext {
    visibility: visible;

}
border-color 用于将内容转换为箭头。设置顶部边框为黑色,其他是透明的。如果设置了其他的也是黑色则会显示为一个黑色的四边形。
我们可以使用 CSS3 transition 属性及 opacity 属性来实现提示工具的淡入效果:


CSS 图片廊

CSS 图像透明

opacity

CSS 图像拼合技术

img.home
{
width:46px;
height:44px;
background:url(img_navsprites.gif) 0 0;
}
先确定容器,然后放入裁剪的图片

CSS 媒体类型

@media 规则

CSS 属性选择器

具有特定属性的HTML元素样式不仅仅是class和id。
  • title
[title]
{
    color:blue;
}
  • input 
input[type="button"]
{
    width:120px;
    margin-left:35px;
    display:block;
}

CSS 表单

input[type=text]
textarea 
select

CSS 计数器

CSS 计数器使用到以下几个属性:
  • counter-reset - 创建或者重置计数器
  • counter-increment - 递增变量
  • content - 插入生成的内容
  • counter() 或 counters() 函数 - 将计数器的值添加到元素 结果是数字
body {
  counter-reset: section;
}
 
h2::before {
  counter-increment: section;
  content: "Section " counter(section) ": ";
}

CSS 网页布局


根据位置创建相应的类

CSS !important 规则

CSS 中的 !important 规则用于增加样式的权重。
!important 与优先级无关,但它与最终的结果直接相关,使用一个 !important 规则时,此声明将覆盖任何其他声明。
使用 !important 是一个坏习惯

CSS3 简介

CSS3 边框

  • border-radius 圆角
  • box-shadow 阴影
  • border-image 图片

CSS3 圆角

三个值: 第一个值为左上角, 第二个值为右上角和左下角,第三个值为右下角
按照顺序来,如果缺少就按照对角补充原则

CSS3 背景

  • background-image
可以给不同的图片设置多个不同的属性,中间用逗号隔开
#example1 { background-image: url(img_flwr.gif), url(paper.gif);
background-position: right bottomleft top;
background-repeat: no-repeatrepeat}
  • background-size
  • background-origin:background-origin:content-box;

  • background-clip:背景剪裁属性是从指定位置开始绘制。 background-clip: content-box; 

CSS3 渐变

 canvas使用的是驼峰法则,css用的是-

线性渐变 

  • background-image: linear-gradient(to bottom right, red, yellow);
  • background-image: linear-gradient(-90deg, red, yellow); 主要角度
  • 多个颜色节点  background-image: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet);
  • 使用透明度  background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
  • 重复的线性渐变   background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
10% 表示 red 的颜色中心线在线性渐变方向的 10% 的位置。
85% 表示 green 的颜色中心线在线性渐变方向的 85% 的位置。
90% 表示 blue 的颜色中心线在线性渐变方向的 90% 的位置。
10% 到 85% 是 red-green 的过渡色,85%-90% 是 green-blue 的过渡色。

径向渐变

  • 设置形状
background-image: radial-gradient(circle, red, yellow, green);
  • 渐变的大小
background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
两个方向的渐变半径,都以最近的为准
  • 重复的径向渐变
background-image: repeating-radial-gradient(red, yellow 10%, green 15%);

CSS3 文本效果

  • text-shadow
水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:(可以多个,此时同类应该用,隔开)
text-shadow: 5px 5px 5px #FF0000;
  • box-shadow: 
  • text-overflow: ellipsis(...)/clip(截断)
over-flow 可以滑动
  • word-wrap:自动换行属性允许您强制文本换行 - 即使这意味着分裂它中间的一个字:
word-wrap:break-word;
  • word-break 单词拆分换行
word-break: keep-all;有连接横线
word-break: break-all;

CSS3 字体

可以下载自己喜欢的字体

@font-face
{
    font-family: myFirstFont;
    src: url(sansation_light.woff);
}

CSS3 2D 转换

  • translate() 根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动
transform: translate(50px,100px);
  • rotate() transform: rotate(30deg);  绕着圆心旋转
  • scale() 该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:
transform: scale(2,3);
  • skew() 分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜
transform: skew(30deg,20deg);相当于挤压矩形
  • matrix() matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。
transform:matrix(0.866,0.5,-0.5,0.866,0,0);

CSS3 3D 转换

translate3d(x,y,z)
translateZ(z)

CSS3 过渡

必须规定两项内容:指定要添加效果的CSS属性;指定效果的持续时间。
div
{
    transition: width 2s, height 2s, transform 2s;
    -webkit-transition: width 2s, height 2s, -webkit-transform 2s;
}

CSS3 动画

  • 先定义关键帧
@keyframes myfirst
{
    from {background: red;}  相当于0%
    to {background: yellow;}  相当于100%
}
  • 使用
div
{
    animation: myfirst 5s linear infinite alternative;
}
animation-name
animation-duration
aniamtion-timing-function
animation-delay

CSS3 多列

  • column-count :column-count: 3;
  • column-gap :  column-gap: 40px;
  • column-rule-style  : column-rule-style: solid;
  • column-rule-width  :   column-rule-width: 1px;
  • column-rule-color  :  column-rule-color: lightblue;
  • column-rule  :  简化的设置的边框的厚度,样式及颜色:
  • column-span : column-span: all;
  • column-width  :column-width: 100px;

CSS3 用户界面

  • outline-offset 属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。
  • 轮廓与边框有两点不同:1、轮廓不占用空间 2、轮廓可能是非矩形

div
{
    border:2px solid black;
    outline:2px solid red;
    outline-offset:15px;
}
resize属性指定一个元素是否应该由用户去调整大小
div { resize:bothoverflow:auto}

CSS 图片

  • 圆角图片
img {
    border-radius: 8px;
}
  • 图片滤镜
 filter: grayscale(100%); 黑白滤镜
  • 图片 Modal(模态)
首先,我们使用 CSS 来创建 modal 窗口 (对话框), 默认是隐藏的。
然后,我们使用 JavaScript 来显示模态窗口,当我们点击图片时,图片会在弹出的窗口中显示:

后面的感觉类似于实战的感觉

CSS 按钮

CSS 分页实例

ul ol 进行格式设置

面包屑导航

ul ol 进行格式设置

CSS3 弹性盒子

弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性容器内包含了一个或多个弹性子元素。
注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。
弹性子元素通常在弹性盒子内一行显示。默认情况每个容器只有一行。
display: flex;

选择器

普通选择器:

组合选择器:

属性选择器:在CSS3中借鉴了类似正则表达式的方法

E[arr^="val"] 匹配以val开头的属性
E[arr$="val"]  结尾
E[arr*="val"]  包含

伪类选择器:

  • css2
E:first-child
E:link/visited/hover/activate
E:focus
  • css3
E:enabled 被激活的元素
E:disabled 禁用的元素
E:checked
E::selection 选中的元素
  • css3结构性伪类元素
E:root 
E:nth-child(n)  第n个子元素 当n可以是odd、even。
E:nth-last-child(n) 单数第几个元素
E:last-child
E:empty

伪元素选择器

  • CSS2
E::first-line
E::first-letter
E::before
E::after
before 和 after 使用注意点:
1. 必须设置 content
2. 默认是行内元素
如果要设置大小, 需要转换显示模式
display: block/inline-block;
或者定位position: absolute/fixed;
3. before 和 after 都是伪元素, 不是真实存在的元素, 不能添加 hover,
且 不能通过 js 进行获取
?E:target
标签展示原则:冲突的覆盖,不冲突的叠加3

HTML5布局之路

3.5 CSS代码规范

书写风格:大括号前后加空格,冒号后面空格
命名:用-或者_连接
样式书写顺序:显示样式(float,position,display等)- 自身样式(宽高边框)-文本样式-CSS新样式

3.7 盒模型

为一个元素的左、右、底设置为10像素 实线 红色
border: 10px solid red
border-top:0

3.7.7 盒模型的问题区

必须先设置边框样式,才可以设置边框的其他属性
如果想要突出显示一个元素可以修改其背景,如果是标记其边框的话,很容易导致盒模型的大小发生变化
设置如图所示的格式:

div {
  width: 0px; 
  height: 0px; 
  border-width: 50px;
  border-style: solid;
  border-color: red black green yellow;
 }

4. 1. 4 浮动特效分析

水槽原理特性小结
float : left 表示 向左浮动,标签(或元素)从右边向上浮起,再从右向左浮动到水槽左边
float : right ;表示向右浮动,标签从左边向上 起,再从左向右浮动到水槽的右边
在浮动过程 ,如果遇到 方向的其 元素,有可能会被“阻碍”
在浮动过程中,左浮动的元素和右浮动的元素并不会互相干涉、阻碍对方运动。
在物理空间的占用方面,左右浮动元素会互相影响
🤩可以为一个元素设置多个类,不同的类名使用空格进行分隔即可,一个元素可以有 个或多个类,并无限制











全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务