尚硅谷html5+css3(3)布局

news2024/11/24 3:42:23

1.文档流normal flow

-网页是一个多层结构

-通过CSS可以分别为每一层设置样式

-用户只能看到最顶层

-最底层:文档流(我们所创建的元素默认都是从文档流中进行排列)

<head>
    <style>
        .box1 {
            background-color: blue;
        }
        /*它的父元素为body*/
        .box2 {
            width: 100px;
            background-color: red;
        }
        span {
            background-color: aqua;
        }
    </style>
</head>
<!--
    元素有两个状态:在文档流中/不在文档流(现在只考虑前者)
    -元素在文档流(基岩)中有什么特点:(元素也可以脱离文档流,不再区分块和行内)
        -块元素 div
            --块元素会在页面中独占一行
            --默认宽度时父元素的全部(即浏览器设置宽度为多少,背景就宽多少)
            --默认高度是子元素的总和
        -行内元素 span
            --行内元素不会只占一行,只占自身大小
            --在页面中自左向右排列(若一行容纳不了,则会换行)
            --默认高度和宽度跟里面的元素有关
    -->

<body>
    <!--两个块元素-->
    <div class="box1">
        我是div1
    </div>
    <div class="box2">
        我是div2
    </div>
    <span>我是span1</span>
    <span>我是span2</span>
</body>

2.盒子模型

<!--盒子模型(对元素进行布局)
    -CSS将页面中的所有元素都设置了一个矩形的盒子
    -将元素设置为矩形的盒子后,对页面的布局就变成了将不同的盒子摆放到不同的位置
    -每一个盒子都有一下几个部分组成:
        --内容区(content)
        --内边距(padding)
        --边框(border)
        --外边距(margin),决定盒子位置
-->

<head>
    <style>
        .box1 {
            /*内容区content,元素中的所有子元素和文本都在内容去中
            大小由width和height来设置*/
            width: 100px;
            height: 100px;
            background-color: aqua;
            /*边框border,边框属于盒子边缘
            设置边框:
                宽度 border-width
                颜色 border-color
                样式 border-style
            边框的大小会影响到盒子大小(盒子内容一直不变)
            */
            border-width: 20px;
            border-color: red;
            border-style: solid;
        }
    </style>
</head>

<body>
    <div class="box1">
        1234
    </div>

</body>

 

1.盒子模型-边框
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: rgb(6, 106, 139);
            /*边框,下面三个元素缺一不可(border-width有默认值,一般3px)*/
            /*border-xxx-width,xxx可以为top right bottom left来指定某一个边的宽度*/
            border-width: 10px 20px 30px 40px;
            /*边框上右下左(顺时针)宽度*/

            /*指定边框颜色,同样可以分别制定四个边框的颜色,也可以用border-xxx-color指定颜色*/
            border-color: orange red yellow green;

            /*指定边框样式,与上面类似。默认值为none(无边框)
                solid 实线
                dotted 点状虚线
                dashed 虚线
                double 双线*/
            border-style: solid dotted dashed double;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: rgb(6, 106, 139);
            /*border简写属性,没有顺序要求
            border-xxx xxx可以为top right bottom left单独设置一边的样式*/
            border: solid 10px orange;
            /*单独去掉一边*/
            border-bottom: none;
        }
    </style>
</head>

<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>

2.盒子模型-内边距
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: rgb(6, 106, 139);
            border: solid 10px orange;
            /*内边距padding
                -内容区和边框之间的距离
                -四个方向:padding-top/right/bottom/left

                内边距的设置会影响到盒子大小,颜色默认为内容颜色
                盒子可见框的大小由内容区+内边距+边框共同决定*/
            padding-top: 50px;
            padding-bottom: 50px;
            padding-left: 50px;
            padding-right: 50px;
            /*padding的简写,上右下左,跟前面的border一样*/
            padding: 10px 20px 30px 40px;
        }

        .inner {
            width: 200px;
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box1">
        <div class="inner">

        </div>
    </div>

</body>

3.盒子模型-外边距
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: aqua;
            border: 10px red solid;
            /*外边距margin
                不影响盒子可见框的大小
                影响盒子的位置
                共有四个方向的外边距:
                margin-top/right/bottom/left
          */
            margin-top: 100px; /*盒子向下移动*/
            margin-left: 100px; /*盒子向右移动*/
            /*margin简写,跟border一样*/
            margin: 100px,100px; 
        }
    </style>
</head>

<body>
    <div class="box1"></div>
</body>

4.盒子模型-水平方向的布局
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .outer {
            /*width默认为auto*/
            width: 800px;
            height: 200px;
            border: 10px red solid;
        }

        /*元素水平方向的布局:
        元素在其父元素中水平方向的位置有以下几个属性共同决定
            margin-left
            border-left
            padding-left
            width
            padding-right
            border-right
            margin-right(一般不用,浏览器会自动调整确保下面的等式成立)
        要满足以下等式:
            上面的加起来=父元素内容区的宽度
        若不成立,则称为过度约束,等式会自动调整(一般调整margin-right)

        水平居中:width:xxxpx;margin:0 auto;
        */
        .inner {
            width: 200px;
            height: 200px;
            background-color: aqua;
            margin-left: 100px;
            margin-right: auto;
        }
    </style>
</head>

<body>
    <div class="outer">
        <div class="inner"></div>
    </div>
</body>

5.盒子模型-垂直方向的布局 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*元素垂直方向的布局*/
        .outer {
            width: 250px;
            height: 400px;
            background-color: #bfa;
            /*默认情况下父元素的高度被子元素撑开
            若设置具体值,则按具体值来                                                                                      */
        }

        /*子元素实在父元素的内容区中排列的
        若子元素大于父元素,则溢出
         用overflow处理溢出的子元素
            overflow:visible:默认显示
                     hidden:隐藏溢出部分
                     scroll:生成两个滚动条,通过滚动条查看完整内容
                     auto 根据需要生成滚动条*/
        .inner {
            width: 100px;
            height: 100px;
            background-color: red;
            margin-bottom: 100px;
            overflow: auto;
        }
    </style>
</head>

<body>
    <div class="outer">
        <div class="inner"></div>
        <div class="inner">111111111111111111111111111111111111111111111
            111111111111111111111111111111111111111111111111111111111
        </div>
    </div>
</body>

6.盒子模型-外边距的折叠

(1)兄弟元素

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*外边距的重叠
            "相邻"的"垂直方向"的外边距会出现重叠现象
            兄弟元素
                相邻垂直外边距取两者的较大值
                特殊情况:
                    如果外边距一正一负,则取两者的和
                    如果外边距都为负,则取绝对值大的*/
        .box1,
        .box2 {
            width: 50px;
            height: 50px;
            font-size: 50px;
        }

        /*box1的下外边距和box2的上外边距重叠了
        尽管两个加起来是200px,但实际上是100px*/
        .box1 {
            background-color: aqua;
            /*设置下外边距*/
            margin-bottom: 50px;
        }

        .box2 {
            background-color: orange;
            /*设置上外边距*/
            margin-top: 50px;
        }
    </style>
</head>

(2)父子元素

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*外边距的重叠
            "相邻"的"垂直方向"的外边距会出现重叠现象
            父子元素:
                相邻外边距,子元素会传递给父元素
                会影响页面的布局,因此必须要处理
                */
        /*将子元素box4下移,不移动父元素box3*/
        .box3 {
            width: 200px;
            height: 100px;
            background-color: aqua;
            padding-top: 100px;
        }
        .box4 {
            width: 100px;
            height: 100px;
            background-color: orange;

        }
    </style>
</head>
<body>
    <div class="box3">
        <div class="box4"></div>
    </div>
</body>

7.行内元素的盒子模型                
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .s1 {
            background-color: yellow;
            /*行内元素的盒子模型
                行内元素不支持设置宽度和高度
                行内元素可以设置padding,垂直方向的padding不会影响页面布局
                行内元素可以设置border,垂直方向的border不会影响页面布局
                行内元素可以设置margin,垂直方向的margin不会影响页面布局*/

            /*width和height无效*/
            width: 100px;
            height: 100px;
            padding: 100px;
            border: 50px solid red;
            margin: 20px;
        }

        .box1 {
            width: 200px;
            height: 200px;
            background-color: #bfa;
        }
    </style>
</head>

<body>
    <span class="s1">
        我是span
    </span>
    <div class="box1">我是box1</div>
</body>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .s1 {
            background-color: yellow;
            margin: 100px;
        }

        .box1 {
            width: 200px;
            height: 200px;
            background-color: #bfa;
        }

        a {
            /*对于超链接的放大
                width和height没有用

                使用display设置元素显示的类型,这样可以使用width和height
                    可选值 (若隐藏,则不占位置)
                        inline:将元素设为行内元素
                        block:将元素设为块元素
                        inline-block:行内块元素,既可以设置宽高,又不会独占一行
                        table:将元素设为表格
                        none:隐藏(可以设置为鼠标点击而显示)*/

            /*visibility设置元素的显示状态
                可选值(若隐藏,则依然占位置)
                    visible:默认值,正常显示
                    hidden:隐藏,但是依然占据页面位置*/

            display: inline-block;/*缺点:兼具行内元素和块元素的优缺点,两者之间有间隔*/
            width: 100px;
            height: 100px;
            background-color: orange;
        }
    </style>
</head>

<body>
    <a href="javascript:;">超链接</a>
    <a href="javascript:;">超链接</a>
    <span class="s1">我是span</span>
    <div class="box1">我是box1</div>
</body>

8.浏览器的默认样式
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*浏览器的默认样式:浏览器为元素设置一些默认样式
        会影响页面布局,一般要去除浏览器的默认样式*/
        body {
            /*去除外边距*/
            margin: 0;
        }

        p {
            margin: 0;
        }

        ul {
            margin: 0;
            padding: 0;
            margin-left: 20px;
            /*去除项目符号*/
            list-style: none;
        }

        /*所有元素去除默认样式:*/
        * {
            margin: 0;
            padding: 0;
        }

        /*一般不自己写,引用别人的文件来去除浏览器的默认样式
        下面这条放到<style>上面
        <link rel="stylesheet" href="./css/reset/css">*/

        .box1 {
            width: 100px;
            height: 100px;
            border: 1px solid black;


        }
    </style>
</head>

<body>
    <!--标签之间自动有间隔(浏览器自动设置了外边距)-->
    <div class="box1">我是box1</div>
    <p>我是一个段落</p>
    <p>我是一个段落</p>
    <p>我是一个段落</p>
    <p>我是一个段落</p>
</body>

9.盒子的尺寸
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            width: 100px;
            height: 100px;
            background-color: #bfa;
            padding: 10px;
            border: 10px solid red;
            /*默认情况下,盒子可见框的大小由内容区、内边距和边框共同决定
            box-sizing,设置盒子尺寸的计算方式(即width和height)
                可选值
                    content-box:默认值,宽度和高度用来设置内容区的大小(140px*140px)
                    border-box:宽度和高度设置整个盒子的大小(100px*100px)
            */
            box-sizing: content-box;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: #bfa;
            padding: 10px;
            border: 10px solid red;
            box-sizing: border-box;
        }
    </style>
</head>

10.轮廓和圆角

(1)轮廓

<head>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: #bfa;
            /*outline用来设置元素的轮廓线,用法和border一样
            但轮廓不会影响可见框的大小*/
            outline: 10px solid red;
        }
        .box2 {
            width: 200px;
            height: 200px;
            background-color: #bfa;
            border: 10px solid red;
        }
    </style>
</head>

<body>
    <div class="box1"></div>
    <span>outline</span>
    <div class="box2"></div>
    <span>border</span>
</body>

(2)阴影

<head>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: #bfa;
            /*box-shadow:设置元素的阴影效果,不影响页面布局
            阴影默认在元素正下方,所以需要偏移量
                第1个值:水平偏移:正右负左
                第2个值:垂直偏移:正下负上
                第3个值:阴影模糊半径
                第4个值:阴影颜色
                */
            box-shadow: 10px 10px 20px rgb(0, 0, 0, .5);
        }
    </style>
</head>

<body>
    <div class="box1"></div>
</body>

(3)圆角

<head>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: orange;
            /*圆角:border-radius同时设置四个角
            也可以分别设置:
                border-top-left-radius
                border-top-right-radius
                border-bottom-left-radius
                border-bottom-right-radius
            */
            /*设置圆的半径*/
            border-top-left-radius: 50px;/*正圆*/
            border-top-right-radius: 50px 100px;/*椭圆*/
        }
        .box2 {
            width: 200px;
            height: 200px;
            background-color: orange;
            /*设置为圆形*/
            border-radius: 50%;
        }
    </style>
</head>

<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1591818.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今日arXiv最热大模型论文:清华大学发布,ChatGML又添新功能,集成“自我批评”,提升数学能力

引言&#xff1a;数学问题解决在大语言模型中的挑战 在当今的人工智能领域&#xff0c;大语言模型&#xff08;Large Language Models&#xff0c;LLMs&#xff09;已经在理解和生成人类语言方面取得了显著的进展。这些模型在文本摘要、问答、角色扮演对话等多种语言任务上展现…

JVM性能调优——OOM分类及解决方案

文章目录 1、概述2、OOM案例1&#xff1a;堆内存溢出3、OOM案例2&#xff1a;元空间溢出4、OOM案例3:GC overhead limit exceeded5、OOM案例4&#xff1a;线程溢出6、小结 在工作中会经常遇到内存溢出(Out Of Memory,OOM)异常的情况&#xff0c;每当遇到OOM&#xff0c;总是让人…

今天我们来聊一聊Java中的Semaphore

写在开头 在上几天写《基于AQS手写一个同步器》时&#xff0c;很多同学留言说里面提到的Semaphore&#xff0c;讲得太笼统了&#xff0c;今天趁着周末有空&#xff0c;咱们就一起详细的学习和梳理一把 Semaphore。 什么是Semaphore&#xff1f; 在前面我们讲过的synchronize…

【计算机毕业设计】人事管理系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

【刷题】代码随想录算法训练营第十一天|20、有效的括号,1047、删除字符中的所有相邻重复项,150、逆波兰表达式求值

目录 20、有效的括号1047、删除字符中的所有相邻重复项150、逆波兰表达式求值 20、有效的括号 讲解&#xff1a;https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html 括号匹配是使用栈解决的经典问题。 三种不匹配&#xff1a;第一种是缺少匹…

Axure RP中的相关概念及高保真原型构建方法

1 Axure RP中概念介绍 对于构建高保真原型来说&#xff0c;需要知道事件&#xff08;Event&#xff09;、Case、Action等概念。Axure RP中给出这些概念&#xff0c;是为了方便原型的构建&#xff0c;尤其是高保真原型的构建。 事件&#xff08;Event&#xff09;是附着于控件…

.vue文件引入路径正确,但报错

问题描述 使用Vue挂载组件时&#xff0c;导入路径正确&#xff0c;但是一直提示 Already included file name ‘绝对路径/index.vue’ differs from file name ‘绝对路径/Index. vue’ only in casing. The file is in the program because: Imported via ‘./components/ind…

Ubuntu,Kylin环境使用clock()函数设置延迟

一、Ubuntu操作系统中&#xff0c;直接在main中测试clock()设置延迟功能 代码描述&#xff1a;直接在main中使用clock()函数设置200ms延迟。 代码输出&#xff1a; 实现了200ms的延迟。 #include <time.h> #include <sys/time.h> #include <stdio.h> #inc…

HarmonyOS实战开发-自定义通知角标、如何设定应用的桌面图标角标的功能。

介绍 本示例主要展示了设定应用的桌面图标角标的功能&#xff0c;使用ohos.notificationManager 接口&#xff0c;进行桌面角标的设置&#xff0c;通知的发送&#xff0c;获取等。 效果预览 使用说明 在使用本应用时&#xff0c;需安装并启动仿桌面应用&#xff1b;在主界面…

微信小程序报错——“errno“: 600001, “errMsg“: “request:fail -2:net::ERR_FAILED“

bug现象 微信小程序体验版和真机调试 进入小程序的时候接口就出现了这个报错 "errno": 600001, "errMsg": "request:fail -2:net::ERR_FAILED" 排查 检查是证书过期还是证书链不完整 证书的信任链完整问题&#xff0c;可以在 亚数信息-SSL/TLS安…

Leetcode:283.移动零

题目要求 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0…

8、【构造者模式】适合于需要创建复杂对象的场景

你好&#xff0c;我是程序员。 今天我们来学习23种设计模式中的建造者模式。构造者模式是什么&#xff1f;有什么优缺点&#xff1f;使用场景&#xff0c;与工厂模式有什么区别&#xff1f;简单代码实现。 一、是什么&#xff1f; 建造者模式&#xff08;Builder Pattern&…

MySQL:MySQL的查询(上)

文章目录 MySQL的增加单行数据插入多行数据插入插入否则更新替换 MySQL的查询select列where语句 本篇开始总结的是MySQL当中的基本查询语句 对于数据库的查询&#xff0c;无非大致就是增删查改&#xff0c;因此对于这些内容进行一一解释&#xff1a; MySQL的增加 单行数据插…

鸿铭网创88计第49计:2024挂机托管项目, 单号躺赚4000+,无需发作品

项目概述&#xff1a; 这个副业项目极为适合忙碌却希望额外赚钱的伙伴们。核心是与平台合作&#xff0c;提供快手账号用于发布视频&#xff0c;视频中会嵌入推广链接。当有用户通过这些链接下载应用时&#xff0c;我们就能获得拉新佣金。 项目 地 址 &#xff1a; laoa1.cn/…

Json和Qt中Json的使用学习笔记

视频链接 https://www.bilibili.com/video/BV1yf4y1A7ek/?p2&spm_id_frompageDriver&vd_sourcefa4ef8f26ae084f9b5f70a5f87e9e41b Json JSON是在网络传输中常用的数据格式&#xff0c;能将不同类型的数据统一起来&#xff0c;我们在发送数据前将不同类型的数据存入到…

关于Git的一些基础用法

关于Git的一些基础用法 1. 前言2. 使用GitHub/gitee创建项目2.1 创建账号2.2 创建项目2.3 下载仓库到本地2.4 提交代码到远端仓库2.5 查看日志2.6 同步远端仓库和本地仓库 1. 前言 首先说一个冷知识&#xff08;好像也不是很冷&#xff09;&#xff0c;Linux和git的创始人是同…

c语言多功能计算软件170

定制魏&#xff1a;QTWZPW&#xff0c;获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件&#xff0c;具备如下功能提示界面。 要求 设计出界面&#xff0c;注意界面名称最后为自己的姓名&#xff1b;&#xff08;20分&#xff09;能够实现加、减、乘、…

BoostCompass(建立正排索引和倒排索引模块)

阅读导航 一、模块概述二、编写正排索引和倒排索引模块✅安装 jsoncpp✅Jieba分词库的安装1. 代码基本框架2. 正排索引的建立3. 倒排索引的建立 三、整体代码⭕index.hpp 一、模块概述 这个模块我们定义了一个名为Index的C类&#xff0c;用于构建和维护一个文档索引系统。该系…

AI python

AI python 软件方面程序上的人工智能&#xff0c;和物理那种能跑机器人没关系

emmet语法---快速生成css样式

前言 本文是对emmet语法生成css样式的整理&#xff0c;emmet语法就相当于快捷键一样&#xff0c;只需要我们输入简单的缩写&#xff0c;然后按下tab键即可生成麻烦的css代码。 emmet语法生成css代码 其实&#xff0c;特别简单。比html还要简单。 先上案例&#xff1a; 我们输…