JavaWeb-CSS的盒模型与弹性布局

简介: JavaWeb-CSS的盒模型与弹性布局

CSS的盒模型

每一个HTML就相当于一个矩形的"盒子".

这个盒子由以下几个部分组成

  • 边框 border
  • 内容 content(下图中间蓝色部分)
  • 内边距 padding
  • 外边距 margin

边框

边框的基础属性:

粗细: border-width

样式: border-style

颜色:border-color

<style>
    div {
    width: 500px;
    height: 250px;
    border-width: 10px;
    border-style: solid;
    /* solid为实线边框,dashed为虚线边框,dotted为点线边框 */
    border-color: blue;    
    }
</style>
<div>
    边框
</div>

接下来我们设计一个500x250的盒子

<style>
    div {
        height: 250px;
        width: 500px;
        background-color: green;
    }
</style>
<div >盒子</div>

我们为其设置一个边框

border-width: 10px;
        border-style: solid;
        border-color: red;

我们会发现盒子变大了,得出边框会撑大盒子的结论.那么怎么样才能使盒不会被边框撑大呢

通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子

* {
    box-sizing: border-box;
  }

内边距

设置内容和边框之间的距离

  • padding-top
  • padding-bottom
  • padding-left
  • padding-right
<style>
div {
    background-color: red;
    width: 400px;
    height: 200px;
    padding-top: 50px;
    padding-left: 100px;
}
</style>
<div>盒子</div>

可以看到内边距也会撑大盒子的,当然也可以使用box-sizing 属性进行修改.

外边距

控制盒子和盒子之间的距离

  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

使用方法跟内边距相差无几,所以这里就不子演示了

块级元素水平居中

三种写法:

<style>
    div {
        width: 500px;
        height: 200px;
        margin-left: auto;
        margin-right: auto;
        /* 第二种:
        margin: auto;
        第三种:
        margin: 0 auto; */
        background-color: green;
    }
</style>
<div>盒子</div>

有一个前提是必须为块元素指定宽度,不然就会跟父元素一致.

有一点需要注意的是

text-align: center 是让行内元素或者行内块元素居中的.
margin: auto 是给块级元素用得.

弹性布局

弹性布局需要了解一些概念

flex 是 flexible box 的缩写. 意思为 “弹性盒子”.

任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.

flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式.

  • 被设置为 display:flex 属性的元素, 称为 flex container
  • 它的所有子元素立刻称为了该容器的成员, 称为 flex item
  • flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

这些概念看完不懂没关系,继续看下面的属性及案例演示.

常用的一些属性

justify-content

设置主轴上的子元素排列方式

<style>
    div {
       height: 150px;
       width: 100%;
       background-color: red;
        display: flex;
    }
    div span {
        width: 100px;
        height: 100px;
        background-color: green;    
    }
</style>
<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
    <span>5</span>
</div>

div {
        height: 150px;
        width: 100%;
        background-color: red;
        display: flex;
        justify-content: center;   
    }

加上 justify-content: center后样式就发生了变化

justify-content的常用取值有:

center -位于容器中央

flex-start -位于容器结尾

flex-end -位于容器开头

space-between -在行与行之间留有空间

space-around -在行前行后行之间都留有空间

align-items

设置侧轴上的元素排列方式

<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    </div>
    <style>
    div {
    width: 500px;
    height: 500px;
    background-color: green;
    display: flex;
    justify-content: space-around;
    }
    div span {
    width: 150px;
    background-color: red;
    }
    </style>

使用 align-items 实现容器的结尾对行打包

<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    </div>
    <style>
    div {
    width: 500px;
    height: 500px;
    background-color: green;
    display: flex;
    justify-content: space-around;
    align-items: flex-end;
    }
    div span {
    width: 150px;
    background-color: red;
    }
    </style>

align-items的常用取值:

center -容器的中央对行打包

flex-start -容器开头对行打包

flex-end -容器结尾对行打包

space-between -行均匀分布在容器中

space-around -行均匀分布在容器中,两端各占一半


相关文章
|
1月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
26天前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
1月前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
|
2月前
|
前端开发 UED
CSS 盒模型
CSS盒模型是网页设计中一个重要的概念,它定义了HTML元素如何在页面上呈现及其相互关系。每个HTML元素都被视为一个矩形框,此模型涉及内容区、内边距、边框和外边距四个部分,通过控制这些部分的样式和布局,设计师可以实现多样化的页面效果。
|
2月前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
61 4
|
2月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
3月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
3月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
4月前
|
前端开发 安全 容器
CSS如何优雅实现卡片多行排列布局?
【8月更文挑战第24天】CSS如何优雅实现卡片多行排列布局?
180 3