前端开发之css

一,css语法及类型:


1. CSS是什么
层叠样式表 --> 给HTML添加样式的
2. CSS的语法
选择器 {
属性1:值1;
属性2:值2;
}
3. CSS引入方式
1. 直接写在HTMl标签里面 -->嵌入式
2. 写在style标签里面的 -->行入式
3. 写在单独的css文件中 -->导入式
4. CSS选择器
1. 基本选择器
1. ID选择器 --> #d1 {}
2. 类选择器 --> .c1 {}
3. 标签选择器 --> a {}
4. 通用选择器 --> * {}

2. 层级选择器
后代选择器 --> div .c1 {}
儿子选择器 --> div>.c1 {}
毗邻选择器 --> div+.c1 {} 同一级 紧挨着我的那个标签
弟弟选择器 --> div~.c1 {} 同一级后面所有的
3. 属性选择器
有某个属性值的 --> div["title"]
属性等于某个值的 --> input["type"="button"]
4. 交集、并集选择器
交集:p.c1
并集:p,.c1

5. 伪类选择器
a:hover {

}
input:focus {

}
6. 伪元素选择器
p:before {}
p:after {}
p:first-child
p:last-child
5. CSS选择器的优先级
1. CSS选择器相同时: 距离标签越近,权重越高!
2. CSS选择器不同时:
内联 > ID选择器 > 类选择器 > 元素选择器 > 继承的样式
3. !important 火烧眉毛才用!
6. 三大特性
1. 继承
2. 层叠
3. 优先级

二,css的元素属性:


1,定义宽高:

width属性可以为元素设置宽度。

height属性可以为元素设置高度。

块级标签:div   p    h1-h6    ul>li  hr    table>tr

行内标签:span   a    input   img....

块级标签才能设置宽度,内联标签的宽度由内容来决定。

     2,文字定义:

       字体:可以在body标签里定义字体格式,系统会依次按照你定义的顺序定义字体格式

body {
  font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
}

       字体大小:

p {
  font-size: 14px;
}

      字体粗细:font-weight用来设置字体的字重(粗细)。

  值               描述
normal       默认值,标准粗细
bold         粗体
bolder       更粗
lighter      更细
100~900      设置具体粗细,400等同于normal,而700等同于bold
inherit      继承父元素字体的粗细值

      字体颜色:

颜色属性被用来设置文字的颜色。

颜色是通过CSS最经常的指定:

  • 十六进制值 - 如: FF0000
  • 一个RGB值 - 如: RGB(255,0,0)
  • 颜色的名称 - 如:  red

还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。

 

      文字对齐:text-align 属性规定元素中的文本的水平对齐方式

 值               描述
left            左边对齐 默认值
right           右对齐
center          居中对齐
justify         两端对齐 

    文字装饰:text-decoration 属性用来给文字添加特殊效果

  值                     描述
none              默认。定义标准的文本。
underline         定义文本下的一条线。
overline          定义文本上的一条线。
line-through      定义穿过文本下的一条线。
inherit           继承父元素的text-decoration属性的值。
常用的为去掉a标签默认的自划线: a { text
-decoration: none; }

       首行缩进:

p {
  text-indent: 32px;
}

     

     背景属性:

/*背景颜色*/
background-color: red;
/*背景图片*/
background-image: url('1.jpg');
/*
 背景重复
 repeat(默认):背景图片平铺排满整个网页
 repeat-x:背景图片只在水平方向上平铺
 repeat-y:背景图片只在垂直方向上平铺
 no-repeat:背景图片不平铺
*/
background-repeat: no-repeat; 
/*背景位置*/
background-position: right top;
/*background-position: 200px 200px;*/

   鼠标滚动背景不动例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>滚动背景图示例</title>
    <style>
        * {
            margin: 0;
        }
        .box {
            width: 100%;
            height: 500px;
            background: url("https://www.luffycity.com/static/img/width-bank.1c9d1b0.png") no-repeat center center;
            background-attachment: fixed;
        }
        .d1 {
            height: 500px;
            background-color: tomato;
        }
        .d2 {
            height: 500px;
            background-color: steelblue;
        }
        .d3 {
            height: 500px;
            background-color: mediumorchid;
        }
    </style>
</head>
<body>
    <div class="d1"></div>
    <div class="box"></div>
    <div class="d2"></div>
    <div class="d3"></div>
</body>
</html>

      边框属性:

  • border-width         边框宽度
  • border-style         边框格式
  • border-color          边框颜色
 值           描述
none      无边框。
dotted    点状虚线边框。
dashed    矩形虚线边框。
solid     实线边框。
 

     圆角边框:border-radius 

用这个属性能实现圆角边框的效果。

将border-radius设置为长或高的一半即可得到一个圆形。

 

    display属性:

用于控制HTML元素的显示效果

     值                意义
display:"none"    HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。
display:"block"    默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。
display:"inline"    按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。
display:"inline-block"    使元素同时具有行内元素和块级元素的特点

display:"none"与visibility:hidden的区别:

visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

 

css盒子模型:

  • margin:            用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
  • padding:           用于控制内容与边框之间的距离;   
  • Border(边框):     围绕在内边距和内容外的边框。
  • Content(内容):   盒子的内容,显示文本和图像。

     css盒子模型

外边距:
.margin-test { margin-top:5px; margin-right:10px; margin-bottom:15px; margin-left:20px; }

顺序是:上右下左

居中是:

.mycenter {
  margin: 0 auto;
}

内填充:

.padding-test {
  padding-top: 5px;
  padding-right: 10px;
  padding-bottom: 15px;
  padding-left: 20px;
}

顺序是:上右下左

  • 提供一个,用于四边;
  • 提供两个,第一个用于上-下,第二个用于左-右;
  • 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
  • 提供四个参数值,将按上-右-下-左的顺序作用于四边;
想让标签撑起来(内容和边框之间的距离变大)设置padding

想让两个标签之间的距离变大,设置margin


注意:当两个标签之间的外边距有重叠的话,会按照最大的外边距来显示。

 

float:浮动

在 CSS 中,任何元素都可以浮动。

浮动元素会生成一个块级框,而不论它本身是何种元素。

关于浮动的两个特点:

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

left:向左浮动

right:向右浮动

none:默认值,不浮动

clear属性规定元素的哪一侧不允许其他浮动元素。

  值         描述
left    在左侧不允许浮动元素。
right    在右侧不允许浮动元素。
both    在左右两侧均不允许浮动元素。
none    默认值。允许浮动元素出现在两侧。
inherit    规定应该从父元素继承 clear 属性的值。

clear只会对自身起作用,不会影响其他元素。

父标签塌陷问题:设置清除浮动工具样式类
.clearfix:after { content:
""; display: block; clear: both; }

overflow:溢出属性

    值            描述
visible    默认值。内容不会被修剪,会呈现在元素框之外。
hidden    内容会被修剪,并且其余内容是不可见的。
scroll    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit    规定应该从父元素继承 overflow 属性的值。
  • overflow(水平和垂直均设置)
  • overflow-x(设置水平方向)
  • overflow-y(设置垂直方向)

制作圆形图像:

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="x-ua-compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>圆形的头像示例</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      background-color: #eeeeee;
    }
    .header-img {
      width: 150px;
      height: 150px;
      border: 3px solid white;
      border-radius: 100%;
      overflow: hidden;
    }
    .header-img>img {
      max-width: 100%;
    }
  </style>
</head>
<body>

<div class="header-img">
  <img src="https://q1mi.github.io/Blog/asset/img/head_img.jpg" alt="">
</div>

</body>
</html>

 

定位:postion

     static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。

   1,相对定位:相对自己本来应该在的位置

postion:  relative;

left:      100px

   2,绝对定位:相对于已经定位过的父标签

postion:  absolute;

left:   200px

   3,固定定位:相对于浏览器窗口

postion:  fixed;

right:    50px
 
bottom:  50px

   z-index:设置层叠数

#i2 {
  z-index: 999;
}

设置对象的层叠顺序,数值大的会覆盖在数值小的标签之上。z-index 仅能在定位元素上奏效。

 

opacity:定义透明效果

用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。

 

posted @ 2018-05-29 14:30  鲁之敬  阅读(68)  评论(0编辑  收藏  举报