CSS初识

1.CSS

一页页面由html, css,javascript

html相当于一个简陋的骨架

css相当于对这个骨架进行化妆修饰的

CSS 层叠样式表 cascading style sheets

1.1CSS引入方式【重点】

先写html标签,然后再写css对标签进行化妆修饰

1.行内样式

2.内联样式

3.外联样式

目的:为了修饰标签的,让标签变得更加好看

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 行内样式写法,目的是为了修饰div标签的 
        学过的每一个标签,都有这个属性叫style
        style属性值写的是css语法格式
        css语法格式:
                属性1:属性值1;属性2:属性值2;属性3:属性值3;
        -->
        <div style="border:4px solid gold; width: 400px;height: 400px;background-color: aqua;color:red;">
            何须马革裹尸还
            
        </div>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>css内联样式的写法</title>
        <!-- 内联样式的写法是在head标签中,有一个子标签叫style
         在style标签中去写CSS样式去修饰标签
         -->
        <style>
            /* 这个是css里面注释,和html不一样。和java一样 */
            /* 首先找到被修饰的标签 ,之后写大括号,在大括号里面写css语法格式*/
            div {
                width: 100px;
                height: 100px;
                background-color: darkgoldenrod;
            }
            /* 修饰p标签 */
            p{
                width: 100px;
                height: 100px;
                background-color: aquamarine;
            }
            /* 修饰span标签 */
            span{
                /* 专门讲一下颜色表示方式
                 1.html规定好的颜色的英文单词
                 2.十六进制的表示形式 0-F
                    R   G   B
                    00  00  00 黑色
                    FF  00  00 红色
                    00  FF  00  绿色
                     00 00  ff  蓝色
                     十六进制组成了好好的颜色
                     一般用吸色器把颜色吸出来
                    
                 */
                color:#E1251B;
            }
        </style>
    </head>
    <body>
        <div>
            无边落木萧萧下,不尽长江滚滚来
        </div>
        
        <P>今天是123456</P>
        <div>
            
        </div>
        <span>不能轻视对手!!!</span>
    </body>
</html>
​
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <!-- 引入外部的css文件
         在head头里面写一个link标签,目的是为了引入外部的css文件
         属性:
            rel:连接文件的类型  样式表
            type:css文件类型
            href:外部的css所在路径  重要的,因为找不到这个css就没有任何效果了
         -->
        <link rel="stylesheet" type="text/css" href="./test.css"/>
    </head>
    <body>
        <!-- 外联样式
         在文件的外部写一个后缀为css的文件,
         引入到咱们当前页面
         -->
        <footer>自挂东南枝</footer>
    </body>
</html>

1.2css的选择器【重要!!!】

目的:为了找到这个被修饰的标签的。

如果连标签都找不到,何谈修饰?好比你买了化妆品,要给你女朋友化妆,。突然想到自己没有女朋友。很扎心。首先找到女朋友,对她进行化妆

1.标签选择器

2.class选择器

3.id选择器

4.层级选择器

5.组合选择器

6.通配选择器

7.伪类选择器

1.2.1标签选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>标签选择器</title>
        <!-- 内联样式的写法 -->
        <!-- 标签选择器,通过标签的名字获取找到标签的 -->
        <style>
            /* sapn就是html标签的名字
             对span的内容进行修饰
             */
            span {
                color:red;
            }
            div {
                color:yellowgreen;
            }
            footer {
                color:blue;
            }
        </style>
    </head>
    <body>
        <span>
            默认回首,那人却在垃圾堆处
        </span>
        <div>借问酒家何处有</div>
        <div>一骑红尘妃子笑</div>
        <footer>风萧萧兮易水寒</footer>
        
    </body>
</html>

1.2.2class选择器

每一个标签都有一个class属性

给class起一个属性的名字,咱们可以通过这个=属性值可以找到这个标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /* class选择器 
                是在标签中写一个class属性,
                属性值是自己定义的,通过
                .属性值  {}找到当前标签进行修饰
            */
            .nb {
                color:red;
            }
            .sb{
                width: 100px;
                height: 100px;
                background-color: #0000FF;
            }
        </style>
    </head>
    <body>
        <!-- 任何一个标签都是有class属性的
         class的属性值可以随便写
         class可以写多个值,中间使用空格隔开。
         <div class="wwb wangwenbo  nb">
         class有三个值
           1.wwb
           2.wangwenbo
           3.nb
         -->
        <div class="wwb bbq  nb">
            青岛不倒我不倒,雪花不飘我不飘
        </div>
        <div class="sb"></div>
    </body>
</html>

1.2.3 id选择器

给一个标签写一个id属性,然后给一个id的值。通过这个id值找到这个标签

#id值 {}

【注意】:id必须是唯一的,class的值可以重复

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>id选择器</title>
        <style>
            /* id选择器  s使用关键字  #id值
             id必须是唯一的
             */
            #wb {
                color:tomato;
                width: 200px;
                height: 200px;
                background-color: bisque;
            }
        </style>
    </head>
    <body>
        <div id="wb">落霞与孤鹜齐飞</div>
        <div >秋水共长天一色</div>
    </body>
</html>
​

1.2.4组合选择器

要修饰多个标签的时候,而且修饰的样式是一样的,这个时候可以写组合选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>组合选择器</title>
        <style>
            /* 组合选择器,用的很多,页面上面很多都是一样的样式
             这个时候可以组合选择器。使用逗号隔开
             */
            #div1, .span1, p, footer {
                color: #FF6347;
            }
        </style>
    </head>
    <body >
        <!-- 给了四个标签,现在我要求四个标签的内容都是tomato颜色 -->
        <div id="div1">众里寻他千百度</div>
        <span class="span1">不教胡马度阴山</span>
        <p>桃花坞里桃花庵</p>
        <footer>呵呵哒</footer>
        <header>嘻嘻哒</header>
    </body>
</html>
​

1.2.5层级选择器

标签是可以嵌套标签的,一层一层的找

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>层级选择器</title>
        <style type="text/css">
            /* 一层一层的往下找
             层级择器是用空格,每一个标签都是有关系的,子标签关系
             */
            /* 我在找标签的时候,为什么不直接找到你?而是通过爷爷,父亲等找到你啊?
             但是语法格式有这样的格式,有存在的意义。咱们有的时候层级太深的,单纯的直接
             找某一个标签,是找不到的,必须通过他的父级标签来找到进行修饰
             */
            #div1 .div2 div {
                color: red;
            }
            #div4{
                color: aqua;
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <div class="div2">
                <div>仰天大笑出门去,我辈岂是蓬蒿人</div>
            </div>
            <div id="div3">
                <div id="div4">磨刀霍霍向猪羊</div>
            </div>
        </div>
    </body>
</html>

1.2.6通配选择器

所有的标签都可以生效

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /* 所有的标签都生效
             *代表的所有
             以后会用
             *优先级比较低
             */
            #div2{
                color:darkred;
            }
            * {
                color:tomato;
                /* 开发的时候一般这样来用通配符 
                设置内边距和外边距为0。目的是让咱们整个网页充满整个电脑屏幕的页面
                */
                margin: 0;
                padding: 0;
            }
            
            div {
                color:green;
            }
            .div1{
                color:yellowgreen;
            }
            
            /* 通配 < 标签 < class  <  id选择器
             不是就近的  是有优先级的!!!
             */
        </style>
    </head>
    <body>
        <div>
            我去好困啊!!!
        </div>
        <div class="div1">我去想睡觉</div>
        <div id="div2">我去睡吧</div>
        <span>昔日龌龊不足夸</span>
    </body>
</html>
​

1.2.7伪类选择器

伪类和a标签(超链接)有关系

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /* 设置链接字体的颜色的 */
            /* 伪类选择器的语法格式比较特殊
             几种状态
             */
            /* 访问过后的状态 链接的颜色*/
            /* link不能放在最后 */
            a:link {
                color:red;
            }
            a:visited{
                color:pink;
            }
            
            /* 鼠标悬停的一个状态 */
            a:hover {
                color:blue;
            }
            
            
            /* 鼠标点上去别松手的一个状态 */
            a:active{
                color:green;
            }
            
            
        </style>
    </head>
    <body>
        <a href="http://www.taobao.com">去淘宝</a>
    </body>
</html>
​

咱们讲过选择器了,为了找到标签。接下来来讲css的属性

2.CSS的属性

color:设置字体颜色

width:设置宽度

height:设置高度的

background-color:设置背景颜色

2.1背景图片的css属性

  • background-color 背景颜色

  • background-image 背景图片 会平铺的

  • background-repeat 平铺的方式

  • background-attachment 背景图片的动态效果

  • background-position 图片的位置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            body{
                /* 会平铺整个页面  网页背景图片 */
                background-image: url(./1.jpg);
                /* 平铺的方式 
                    repeat-x:横向平铺
                    repeat-y:纵向平铺
                    no-repeat:不平铺
                */
                background-repeat: no-repeat;
                /* 图片的位置 
                两个值  第一是x轴的偏移(离左边的距离)  第二个值是y轴的偏移(离上面的距离)
                */
                background-position:100px 200px;
                /* 图片的动态效果 
                scroll  图片和文字相对静止的
                fixed  图片相对于文字是动的
                */
                background-attachment: fixed;
            }
        </style>
    </head>
    <body>
     
        
    </body>
</html>
​

2.2边框的css属性

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 100px;
                height: 100px;
                /* 边框样式   solid  实线*/
                /*border-style: ridge;
                /* 边框的颜色 
                border-color: #008000;
                /* 边框的宽度 
                border-width: 10px;*/
                /* 边框的简写 
                包含了边框的样式   颜色   宽度
                一个属性带三个属性值,相当方便
                但是官方手册给咱们了border-style必须要写的
                */
                border: solid 3px #0000FF ;
                /* 边框是四个边,咱们还可以对单独边进行设置  不用记!!! */
                /* border-top-style: dashed;
                border-left-style: dotted;
                border-right-style: double;
                border-bottom-style: groove; */
                /* 设置边框的圆角  border-radius  圆角的半径  不用记*/
                border-radius:100px;
            }
        </style>
    </head>
    <body>
        <div>
            
        </div>
    </body>
</html>

2.3文本和字体的css属性

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #d1 {
                width: 1000px;
                height: 300px;
                border: 3px solid red;
                /* 设置字体的颜色 */
                color:blue;
                /* 设置字体的大小 */
                font-size:50px;
                /* 设置字体的样式
                 normal 正常的字体
                 italic  斜体
                 */
                /*font-style: italic; 
                /* 设置字体的权重  是否加粗 
                font-weight: bold;
                /*  规定文本的字体系列(字体族)。  楷体   宋体   微软雅黑
                font-family: 楷体;*/
                /* 字体简写的写法 
                font-size 和font-family的值是必须写的
                */
                font: bold 30px  宋体;
                /* 文本线的形状 
                line-through  中间线
                overline  上划线
                underline 下划线
                none  去除文本线  a标签有很多的下划线,去除一下
                */
                text-decoration: underline;
                /* 文本的缩进 好多文章  第一句空两格写*/
                /* text-indent: 50px; */
                /* 文本的对齐方式   left  right   center*/
                text-align: center;
                /* 控制行高 
                文本的高度问题
                如果想要文本居中显示,值必须是div的高度
                */
               line-height: 300px;
                
                
            }
            a{
                text-decoration: none;
            }
        </style>
    </head>
    <body>
        <div id="d1">你不醉我不醉马路牙子谁来睡</div>
        <a href="#">呵呵呵哒</a>
    </body>
</html>
​

2.4盒子模型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 200px;
                height: 200px;
                border:3px solid skyblue;
                background-color: darkred;
                /* 开始加内边距
                 一个数据的时候:上下左右都是这个值
                 两个数据的时候:第一个数据是上下  第二个是左右的内边距
                 三个数据的时候:上   左右   下
                 四个数据的时候:上  右  下  左  顺时针的
                 */
                /* padding: 40px  80px  160px   320px; */
                /* 单独去指定某一边的内边距 */
                padding-left: 30px;
                padding-right: 40px;
                padding-top: 50px;
                padding-bottom: 100px;
            }
        </style>
    </head>
    <body>
        <div>窗含西岭千秋雪</div>
    </body>
</html>
​

2.5浮动【重要】

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /*如果没有浮动 上下排列  div是一块级标签 */
            /* 
             浮动就是把块变成了行进行排列的
             div是一个块级标签不可能在一行上面的,但是可以通过浮动让他们在一行上面啊!!!
             
             */
            #div1{
                width: 100px;
                height: 100px;
                background-color: #0000FF;
                float: right;
            }
            #div2{
                width: 100px;
                height: 100px;
                background-color: red;
                float: right;
            }
            #div3{
                width: 100px;
                height: 100px;
                background-color: green;
                float: right;
            }
        </style>
    </head>
    <body>
        <div id="div1"></div>
        <div id="div2"></div><div id="div3"></div>
    </body>
</html>
 

清除浮动

<!DOCTYPE html>
<html>
<head>
<style>
    /* 清除浮动的目的  把行级标签变成块级标签,刚好和浮动相反 */
.div1 {
  float: left;
  width: 100px;
  height: 50px;
  margin: 10px;
  border: 3px solid #73AD21;
}
​
.div2 {
  border: 1px solid red;
}
​
.div3 {
  float: left;
  width: 100px;
  height: 50px;
  margin: 10px;
  border: 3px solid #73AD21;
}
​
.div4 {
  border: 1px solid red;
  clear: left;
}
</style>
</head>
<body>
​
<h1>不使用 clear</h1>
<div class="div1">div1</div>
<div class="div2">div2 - 请注意,在 HTML 代码中 div2 在 div1 之后。不过,由于 div1 向左浮动,div2 中的文本会流动到 div1 周围。</div>
<br><br>
​
<h1>使用 clear</h1>
<div class="div3">div3</div>
<div class="div4">div4 - 在此处,clear: left; 把 div4 移动到浮动的 div3 下方。值 "left" 会清除向左浮动的元素。您也可以清除 "right" 和 "both"。</div>
​
</body>
</html>

2.6定位

固定定位

相对定位

绝对定位

2.6.1固定定位

position: fixed; top: 0; left: 0;

<!DOCTYPE html>
<html>
<head>
<style>
div.fixed {
  position: fixed;
  top: 0;
 left: 0;
  width: 300px;
  border: 3px solid #73AD21;
}
</style>
</head>
<body>

<div class="fixed">
额我真的还想
</div>
​
</body>
</html>

2.6.2相对定位

参照物是亲父节点

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                
            }
            #div1 {
                background-color: #008000;
            }
            #div2{
                background-color: yellowgreen;
            }
            #div2:hover{
                /* 相对div1来定位,最近的那个亲父节点 */
                position: relative;
                background-color: yellowgreen;
                top:10px;
                left: 10px;
            }
        </style>
    </head>
    <body>
        <div style="background-color: #0000FF;"></div>
        <div id="div1">
            <div id="div2"></div>
        </div>
    </body>
</html>

2.6.3绝对定位

绝对定位的参照物是设置了相对定位的父级节点,如果所有父级节点都没有相对定位的情况下才会参照body标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 100px;
                height: 100px;
                
            }
            /* 和dody标签有关系 */
            #div1 {
                background-color: chartreuse;
                position: absolute;
                top: 100px;
                left: 100px;
            }
            #div3 {
                background-color: green;
                position: absolute;
                top: 10px;
                left: 10px;
            }
            /* div4在div3中 
                相对于最近的祖先元素进行的定位的
            */
            #div4{
                background-color: red;
                position: absolute;
                top: 10px;
                left: 10px;
            }
        </style>
    </head>
    <body>
        <div id="div1"></div>
        <div id="div2"></div>
        <div id="div3">
            <div id="div4"></div>
        </div>
        
    </body>


</html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇智波波奶茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值