个人技术分享

css基础

CSS

HTML+CSS+javaScript

结构+表现+交互

1.1什么是css

Cascading Style Sheet 层叠级联样式表

CSS: 表现(美化网页)

css的优势:

1.内容和表现分离

2.网页结构表现统一,可以实现复用

3.样式十分的丰富

4.建议使用独立于html的css文件

5.利用SEO,容易被搜索引擎收录!

1.2 CSS的3种导入方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--  内部样式-->
  <style>
    h1{
      color: aqua;
    }
  </style>
<!--    外部样式-->
    <link rel="stylesheet" href="style.css">
</head>
<body>
<!--行内样式:在标签元素中,编写一个style属性,编写样式即可-->
<h1 style="color:red"> 我是标题</h1>
</body>
</html>
<!--覆盖原则 从上到下 也可以是就近原则,离标签越近,就执行谁 -->

2.选择器

作用:选择页面上的某一个或者某一类元素

2.1基本选择器

1.标签选择器

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--  标签选择器,会选择到这个页面上的所有标签  -->
    <style>
​
       h1{
           color: aqua;
       }
       p{
           font-size: 80px;
       }
    </style>
</head>
<body>
<h1>学javaa</h1>
<p>听狂神说 </p>
​
</body>

2.类选择器

<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    类选择器的格式:  .class的名称{}
   好处:可以多个标签归类,是同一个class,可以复用,跨标签-->
    <style>
        .wo{
            color: red ;
        }
        .ni{
            color: darkblue;
        }
​
    </style>
</head>
<body>
<h1 class="wo">标题1</h1>
<h2 class="ni">标题2</h2>
<h3 class="wo">标题3</h3>
</body>

3.id选择器

<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--   id保证全局唯一   id选择器格式:  #id名称{}
     不遵循就近原则 ,是固定的  id选择器>class选择器>标签选择器-->
    <style>
  #qiannan{
      color: chocolate;
  }
    </style>
</head>
<body>
<h1 id="qiannan">标题1</h1>
<h1> 标题2</h1>
</body>

2.2层次选择器

1.后代选择器:在某个元素的后面 祖爷爷 爷爷 爸爸 你

<style>
    body+空格+p
  body p{
    background: red;
  }
</style>

2.子选择器 : 只有一代

<style>
body>p{
  background: aqua;
}
</style>

3.相邻兄弟选择器 同辈 相邻一个(下面的那一个)

  <style>
 .nnn+p{
   background: aquamarine;
 }
  </style>
</head>
<body>
<p class="nnn">p1</p>
<p>p2</p>  //p2生效了
<p>p3</p>

4.通用兄弟选择器 选择所有向下的兄弟元素

<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
 .nnn~p{
   background: aquamarine;
 }
  </style>
</head>
<body>
<p class="nnn">p1</p>
<p>p2</p> //p2生效
<p>p3</p>//p3生效

2.3结构伪类选择器(带:)

 
 <style>
ul li:first-child{
    <!--ul下面li的第一个子元素-->
 background: red;
}
ul li:last-child{
 background: darkblue;
}
 </style>
/*选中父元素 下面p类型元素的 第一个*/
p:nth-of-type(1){
 background: chartreuse;
}
/* 选中父级元素的第三个子元素  但必须式p元素才生效*/
p:nth-child(3){
    background: black;
}
2.4属

性选择器(常用)

标签名[属性名=属性值]{} =绝对等于 
 *=包含多个全部选中
 ^=以这个开头
$=以这个结尾
​

3.美化网页元素

span标签,重点要突出的字,用span套起来

3.1字体样式

<!--font-size: 50px; 字体大小
font-family:"Agency FB";字体
    font-weight: bolder;    字体粗细
    color:颜色
      -->

3.2文本样式

<!--
            1. 文本对齐的方式:text-align: center;  排版,居中
            2. text-indent:  2em;; 段落首行缩进
            3.行高,和 块的高度一致,单行文字就可以上下居中
            height:300px;
            line-height: 300px;
             4.  img,span{
        vertical-align: middle;
    }     文本图片水平对齐
      5.装饰:  text-decoration: underline; 下划线
      6.超链接去下划线:text-decoration:none -->

3.3超链接伪类补充

/*去下划线,加默认的颜色*/
a{
    text-decoration: none;
    color: black;
}
/*鼠标悬浮的状态 需记住*/
a:hover{
    color: chocolate;
    font-size: 100px;
}
/*鼠标按住未释放的状态*/
a:active{
    color: chartreuse;
}

4.背景

4.1背景图片

<style>
    div{
        width: 1000px;
        height: 700px;
        border:1px solid red;
        background-image: url("image2'/1.jpg");
    /*    默认是全部平铺*/
    }
    .div1{
        background-repeat: no-repeat;
    }
    
</style>

4.2列表应用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表样式</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
<div id="nav">
  <h2 class="title1"> 全部商品分类</h2>
  <ul>
    <li><a href="#">图书</a>&nbsp;&nbsp; <a href="#">音像</a>&nbsp;&nbsp;<a href="#"> 家居</a></li>
    <li><a href="#">电脑</a>&nbsp;&nbsp; <a href="#">家用电器</a>&nbsp;&nbsp;<a href="#"> 办公</a></li>
    <li><a href="#">钟表</a>&nbsp;&nbsp; <a href="#">旅行</a>&nbsp;&nbsp;<a href="#"> 手机</a></li>
  </ul>
</div>
</body>
</html>
#nav{
    width: 500px;
    background: dimgray;
}
​
.title1{
    color: blue;
    font-size: 30px;
    line-height: 30px;
    background: red;
    background: red url("images/d.png" ) 400px 2px no-repeat;
}
ul{
    background: dimgray;
}
ul li{
    height: 50px;
    list-style: none;
    text-indent: 1em;
    background-image: url("images/2.png");
    background-repeat: no-repeat;
    background-position: 350px 2px;
​
}
a{
 text-decoration: none;
    font-size:14px;
    color:black;
}
a:hover{
color: coral;
    text-decoration: underline;
}

5.盒子模型

margin: 外边距

padding: 内边距

border: 边框

5.1边框

border: 3px solid black;  粗细 样式 颜色

5.2内外边距

  margin: 0 auto;
/*  margin: 0 auto; 外边距的作用 可以居中*/

5.3圆角边框

5.4浮动

5.4.1display

块级元素: 独占一行

h1~h6 p div 列表

行内元素:不独占一行

span a img strong 
display: block;
block 变成块级元素
inline 变成行内元素
inline-block 既是行内元素,但也拥有块级元素的属性
​
5.4.2float

5.4.3父级边框塌陷问题

clear:right; 右侧不允许有浮动
clear:left; 左侧不允许有浮动
clear:both; 两侧不允许有浮动
​

解决方案:

1.增加父级元素的高度

2增加一个空的div标签,清除浮动

<div  class="clear1"></div>
​
​
​
.clear1{
     clear:both;
     margin:0;
     padding:0;
}

3.在父级元素中增加一个 overflow:hidden;

4.父类添加一个伪类:after

#father:after{
    content:'';
    display:block;
    clear:both;
}

6.定位

6.1相对定位relative

仍然在标准文档流中,原来的位置会被保留

#first{
    background-color: #ed64b2;
    border :1px solid fuchsia;
    position: relative;
    top: -20px;
/*  相对定位来说,负号表示向设定的方向移动,正号表示向相反的方向移动  */
​
}

6.2绝对定位absolute

1.没有父级元素定位的前提下,相对于浏览器定位

2.假设父级元素存在定位,我们通常会相对于父级元素进行偏移

3.绝对定位默认位置在父级元素内,绝对定位,不在标准文档流中,原来的位置不被保留

6.3固定定位fixed

6.4 z-index

图层的概念 z-index

opacity:0..5 背景透明度