html小白初学

语义化更易读,seo;搜索引擎优化

块级元素:独占一行,不管内容长度

内联元素:紧跟着排列

盒模型:

标准盒模型,内容即为长宽,内外边距,框都不算。

怪异盒模型,内边距+内容+框=宽

标准盒模型写width:200px

得到的box-sizing大于200,

加上一句box-sizing:border-box。就缩到200了

不加的话就是默认content-box(内容占据全部的width)

margin合并

当两个div有低外边距和顶外边距时,会造成盒子塌陷。

html 复制代码
<body>
    <div>第一个盒子</div>
    <div>第二个盒子</div>
</body>

<style>
    div {
        font-size: 16px;
        line-height: 1;
        margin-top: 10px;
        margin-bottom: 50px;
        border: 1px solid #fcfcfc;
    }
</style>

在两个div之间插入空div,也会合并。

margin负值

BFC:Block formatting context(块级格式化上下文)

形成独立的渲染区域,内部原元素的渲染不会影响外界,用于清除浮动

正常div先写img,加上float:left,再写<p>,文字正常,但是整个div高度很小,造成图片浮动

加上

.bfc {

overflow: hidden;

}

还是有问题:p占满了整个页面

解决方案:p也加上bfc

圣杯布局

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div>
        <div id="header">header</div>
        <div id="content">
            <div id="center" class="column">center</div>
            <div id="left" class="column">left</div>
            <div id="right" class="column">right</div>
        </div>
        <div id="footer">footer </div>
    </div>
</body>

<style>
    div {
        text-align: center;
    }

    #header {
        background-color: #f1f1f1;
    }

    #content {
        padding-left: 300px;
        padding-right: 200px;
    }

    #content #center {
        background-color: #ddd;
        width: 100%;
    }

    #content #left {
        background-color: yellow;
        width: 300px;
        margin-left: -100%;
        /* 拖到上面 */
        position: relative;
        right: 300px;
        /* 继续左拖300px */
    }

    #content #right {
        background-color: green;
        width: 200px;
        margin-right: -200px;
    }

    #content .column {
        float: left;
    }

    #footer {
        background-color: #f1f1f1;
        clear: both;
        /* 清除浮动 */
    }
</style>

</html>

flex骰子布局

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="continer">
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
    </div>
</body>

<style>
    .continer {
        background-color: #fff;
        border: 1px solid #000;
        display: flex;
        flex-direction: row;
        width: 100px;
        height: 100px;
    }

    .point {
        background-color: black;
        border-radius: 50%;
        width: 20px;
        height: 20px;
        margin: 7px;
    }

    .point:nth-child(2) {
        align-self: center;
    }

    .point:nth-child(3) {
        align-self: flex-end;
    }
</style>

</html>

row-reserve是从右往左排列

space-between是左右靠边分布

space-around是等距离分布

baseline:不是靠近最底下。是靠近基线,而交叉轴和主轴的基线从左上角开始。

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="continer">
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
        <div class="point"></div>
    </div>
</body>

<style>
    .continer {
        background-color: #fff;
        border: 1px solid #000;
        display: flex;
        flex-direction: row;
        width: 100px;
        height: 100px;
        justify-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .point {
        background-color: black;
        border-radius: 50%;
        width: 20px;
        height: 20px;
        margin: 0;
    }

    /* .point:nth-child(2) {
        align-self: center;
    }

    .point:nth-child(3) {
        align-self: flex-end;
    } */
</style>

</html>

relative和absolte定位

relative相对于自身,absolute相对于上一个父元素

在CSS中,relative和absolute是用于定位元素的两种方式

relative(相对定位)是相对于元素自身原来的位置进行定位。当你对一个元素使用position: relative后,可以通过top、bottom、left、right属性来移动这个元素。元素原来占据的空间仍然会保留,其他元素不会占据它原来的位置。例如,设置一个元素position: relative和top: 10px,这个元素会相对于它原来的位置向下移动10像素。

absolute(绝对定位)是相对于最近的已定位祖先元素(position属性值为relative、absolute或者fixed)来定位。如果没有已定位的祖先元素,那么它会相对于文档根元素(<html>)进行定位。当一个元素使用position: absolute时,它会脱离文档流,原来占据的空间不会被保留,其他元素会填补它原来的位置。比如,在一个相对定位的容器中有一个绝对定位的元素,这个绝对定位元素会以容器的左上角为参照点(如果没有其他偏移量设置)进行定位。

水平居中

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div class="item1">hello world</div>


    <div class="continer">
        <div class="item2">hello world</div>

    </div>
    <div class="continer">
        <div class="item3">hello world</div>
    </div>
</body>

<style>
    .continer {
        width: 400px;
        height: 200px;
        background-color: gray;
        border: 1px solid black;
    }


    .item1 {
        text-align: center;
        background-color: gray;
    }

    .continer .item2 {
        margin: 0 auto;
        background-color: pink;
        width: 100px;
        height: 100px;
    }

    .item3 {
        position: absolute;
        background-color: yellow;
        top: 250px;
        left: 50px;
        left: 50%;
        margin-left: -150px;
    }
</style>

</html>

垂直居中

line-heigh继承

当1情况,直接继承50px,

当2情况,继承1.5*自身行高

当3情况,继承2*父元素行高。

rem?

相关推荐
cwtlw18 分钟前
CSS学习记录11
前端·css·笔记·学习·其他
轻动琴弦35 分钟前
nestjs+webpack打包成一个mainjs
前端·webpack·node.js
m0_7482361143 分钟前
前端怎么预览pdf
前端·pdf
快乐牛牛不要困难43 分钟前
前端将base64转pdf页面预览
前端
cwtlw1 小时前
如何创建maven工程
java·笔记·后端·学习·maven
m0_748233641 小时前
Python Flask Web框架快速入门
前端·python·flask
凉辰1 小时前
使用FabricJS对大图像应用滤镜(巨坑)
前端
梓沂1 小时前
pom.xml中dependencyManagement的作用
xml·java·前端
m0_748250031 小时前
前端pdf预览方案
前端·pdf·状态模式
neeef_se1 小时前
【Linux】WG-Easy:基于 Docker 和 Web 面板的异地组网
linux·前端·docker