css学习


前言

提示:这里可以添加本文要记录的大概内容:

Java 程序员 两天了解css基础知识,主要是css基础,适合css入门和想快速了解css的朋友
学习过程:
1.css是什么
2.css怎么用
3.css 选择器(重难点)
4.美化网页(文字,阴影,超链接,列表,渐变等)
5.盒子模型
6.浮动
7.定位
8.网页动画


一、css是什么?

1.概念

层叠样式表(英文全称:Cascading Style Sheets)
简单来说就是补充HTML,进一步修饰网页。

2.发展史

css1.0
css2.0 DIV(快)+CSS
css2.1 浮动,定位
css3.0 圆角,阴影,动画,浏览器兼容性…

3.CSS的优势

1.内容与表现分离(一般css文件内容在单独的css文件夹下,HTML在使用时直接引用,让代码便于阅读)
2.结构统一,可复用。
3.样式丰富。
4.利用SEO,容易被搜索引擎收录。

二、基本内容

1.三种导入方式

行内样式:
直接写在标签使用的时候,和HTML混在一起(一般不推荐使用)

<body>
<p style="background-color: aliceblue">hello world</p>
</body>

内部样式:
直接将style内容写在使用的HTML文件下。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css练习</title>

    <style>
        h1{
            background-color: antiquewhite;
        }
    </style>
</head>

外部样式:
单独建立css的文件夹来存放样式相关文件,使css和HTML代码相对分离,方便阅读。在HTML文件中通过一般通过link链接的方式使用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css练习</title>

    <link rel="stylesheet" href="css/css.css">
</head>

拓展:导入式,通过import的方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css练习</title>

    <style>
        @import url("css/css.css");
    </style>
</head>

注意:
如果一个标签使用的样式被三种方式导入,则按就近原则。如行内样式一般离我们使用的标签最近,就优先使用行内样式所声明的样子。外部样式和内部样式就是引用的位置谁更进了。如下就是优先使用外部样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css练习</title>


    <style>
        p{
            background-color: #8474ff;
        }
    </style>
    <link rel="stylesheet" href="css/css.css">
    
</head>

2.选择器(重点)

2.1 常用选择器

选择器就是定位到页面中我们需要修改或者调整的位置。

1.标签选择器:声明之后,页面上的所有该类标签都会应用。声明方法:标签名{ }

<style>
        p {
            text-align: center;
            color: red;
        }
</style>

2.类选择器:通过class 关键字进行引用。声明方式:.类名{ } 这样每个控件可以相应的选择自己喜欢的样式,且可以跨标签。

.center {
  text-align: center;
  color: red;
}

<body>
<p class="center">hello world</p>
</body>

3.id选择器:通过关键字id进行引用。声明方式:#id{ } 和类选择器类似,只是id选择器只能被引用一次,有标签用到其他的标签就不能引用了。

#para1 {
  text-align: center;
  color: red;
}

<body>
<p id="para1 ">hello world</p>
</body>

如果一个标签同时引用了三种,则按优先级选择。
优先级:id > clss >标签

2.2 层次选择器

1.后代选择器:在某个元素的后面的所有标签。
如下是body下面的所有 P标签都被声明了。

<style>
        body p{
            background-color: #a2ffbf;
        }
 </style>

2.子选择器:只有下面的一代,儿子

<style>
        body p{
            background-color: #a2ffbf;
        }
 </style>

3.相邻兄弟选择器:选择同辈的该标签下方的一个标签。如下:某个类下方的第一个p标签,所有h1标签下方的第一个P标签。

.class + p {
margin-top:50px;
}

h1 + p {
margin-top:50px;
}

4,通用选择器:和相邻兄弟选择器相比,会选择下方的所有兄弟元素。

h1 ~p{
            background-color: #a2ffbf;
}

2.3结构伪类选择器

有的标签存在上下级关系,如表格。这时可以通过父标签 子标签 :first-child{ } 去选择子标签中的第一个或最后一个元素。

ul li:first-child{
            background-color: #ffcf7e;
        }

还有 P标签:nth-of-type(n) 的方式可以获取该标签的父标签下方的第n个标签。注意如果第n个标签不是P标签则不用产生效果

p:nth-of-type(1){
            background-color: #ffcf7e;
        }

P标签:p:nth-child(n) 和上面类似,只是只会关注父标签下方的P标签,选出第n个P标签。

p:nth-child(2){
            background-color: #ffcf7e;
        }

2.4属性选择器(常用)

将id 和class 结合
属性选择器可以根据元素的属性及属性值来选择元素。可以选中某一类标签中特定条件的标签。
标签名[筛选条件][筛选条件]

a[id=1][title=zzk] {
color:red;
}

3美化页面元素

有效的传递页面信息
美化页面,吸引用户
提高用户体验

span标签通常用来强调,突出显示内容。

3.1字体样式

关于字体的常用属性:

/*font-family:字体*/
/*fron-size :字体大小*/
/*font-weight :字体粗细*/
/*color :字体颜色*/

body{
    font-family: "Arial Black" , 楷体;
    color: #84ff61;
}

h1{
    font-size: 50px;
}

.pp{
    font-weight: 900;
}

3.2文本样式

1:颜色,color rgb rgba
2: 对齐方式,text-align =center
3: 首行缩进,rext-indent:2em
4: 行高,line-height
5: 装饰 text-decoration
6 : 文本图片水平对齐 : vertical-align :middle。

/*颜色:*/
/*    rgb:0-F*/
/*    rgba:增加的透明度 0-1*/

h1{
    color: rgba(1,255,255,0.5);
}
/*text-align:排版,居中。*/
text-indent:2em 段落首航缩进两空格
height :300px
line-heigth:300px 行高和块的高度一致,就可以居中。

p{
    text-align: center;
    height: 300px;
    line-height: 300px;
}
/*水平对齐需要参照物,所以需要两个标签*/
img,span{
    vertical-align: middle;
}

3.3超链接伪类

就是鼠标悬浮,点击这个标签的内容呈现的不同状态。
提供 标签:状态 的方式进行定义。

<style>
    /*默认的颜色*/
    a{
        text-decoration: none;
        color: #ffcf7e;
    }

    /*鼠标悬浮的状态*/
    a:hover{
        color: green;
    }
    /*鼠标按住未释放的状态*/
    a:active{
        color: bisque;
        font-size: 300px;
    }
</style>

3.4图片背景相关

4盒子模型

4.1概念

一个标签主要有:margin(外边距)+ border(边框)+padding(内边距)
在这里插入图片描述

4.2border

border :粗细,样式,颜色

#box{
    width: 300px;
    border: 1px solid red;
}

4.3内外边距

margin:0 (上下左右)
margin:0 (上下) 1px(左右)
margin: 0(上) 1px(下) 0(左) 1px(右)
盒子的计算方式(这个元素到底多大?)
margin + border + padding +内容宽度

   <title>黑盒模型</title>
    <style>
        .testform{
            width: 300px;
            background: beige;
        }

        .passwordtext{
            margin-left: 16px;
        }
        body{
            margin: 0;
        }

        form{
            margin: 100px auto;
        }

        h1{
            margin: 0;
            width: 300px;
            color: #ffcf7e;
            font-size: 20px;
            font-family: "Arial Black";
            padding: 5px 10px 5px 90px;
            /*上下右左*/
        }
        div input:nth-of-type(1){
            border:  2px dashed cadetblue;
        }

        form div:nth-of-type(3){
            font-size: large;
            width:100px ;
            padding-top: 10px;
            margin-left: 130px;
        }
    </style>


</head>
<body>

<form action="ListStudy.html" class="testform">
    <h1>会员登录</h1>
    <div>
        <span>用户名:</span>
        <input type="text">
    </div>
    <div>
        <span>密码:</span>
        <input type="password" class="passwordtext">
    </div>
    <div>
        <input type="submit">
    </div>
</form>

5 浮动

5.1 标准文档流

标志流就是元素默认的排版。块级元素(h1-h5,p ,div ,列表)独占一行(span , link …),行内元素会都挤在一行。
下图中右边就是标准文档流。
在这里插入图片描述

5.2 display

display 属性可以切换块级元素和行类元素的属性。
block 块元素
inline 行内元素
inline-block 保持块元素的大小等性质,但不再独占一行。

5.3 float

float 属性可以让该元素悬浮于父级背景之上。并且可以选择靠左和靠右悬浮。

***个人心得:***使用float属性的时候,会在上一个标准文档流(就是没使用float实现的标签)块级元素的下一行进行悬浮。
如果上一个标准文档流是行内元素:就会在上一行直接悬浮。
悬浮的元素不会占用行位置,如果后面有标准文档流,不管是块元素还是行内元素,都会直接在这一行开始显示。因为对于系统来说浮动元素并没有占用行。

建议敲代码试试,就知道了。

5.4 父级边框塌陷的问题

因为浮动的图片是不占用行的,所以如果图片较大,大于了父级标签的边框大小,就会存在图片超出边框的情况。
在这里插入图片描述
解决方案:
1:直接固定的把父级边框的高度加长。
#father{
height :800px
}

2:增加可以清除浮动的div标签。
clear 属性可以让标签的左右没有浮动元素,如果有就会新取一行。 left :表示左边不能有浮动元素
right :右边
both :两边
这样在父级标签的最下面加一个声明了clear 属性的div标签就把整个父标签的高度自动拉长到可以容下所以内容的高度了。

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

4:在父类中添加一个伪类 :after
原理和方案2有点类似,只是在css代码层面直接产生了一个这样的空的标签,将高度撑大。
#father :after{
content :‘ ’;
display :block;
clear :both;
}

小结

1:改变设置父元素的高度
简单,但比较死板。
2:浮动元素后面直接添加空的div
简单,但代码中尽量减少空的div
3:overflow
简单,但在一下又滑动条和下拉的场景不方便使用
4:在父类中直接添加伪类 :after
相对复杂一点,但没有副作用。

6 定位

6.1 相对定位

position:relative
相对定位就是相对这个元素原来的位置,进行指定偏移
top left bottom right
上下左右

6.2 绝对定位

position :absolute
定位:基于父级元素或者浏览器边框定位,上下左右
1:在父级元素没有声明定位属性(position)的情况下,会相对于浏览器定位。
2:假如父级元素存在定位,通常就会相对于父级元素进行偏移。
3:偏移会在父级元素的范围内进行移动。

6.3 固定定位

position:fixed
固定定位也是相较于自己原来的位置进行定位。只是该元素会被一直固定在页面的该位置,即使滑动任务栏也不会改变该元素在页面上的位置。类似于一些广告栏。
如:在这里插入图片描述

6.4 z-index

就是可以会有多个图片,或者是背景之类的元素出现在同一个位置。这样很可能下面的背景图片就会被覆盖遮住。z-index可以设置显示的优先级。一般可以设置:0-999
在这里插入图片描述

总结

终于写完了,前前后后大约学了三天。大家能看到这也是不容易哈哈。
主要是前端css的基础,对于后端Java工程师来说应该是够了的趴。
在这里插入图片描述
zzk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值