CSS之常用属性、元素的显示模式、盒模型(下)

简介: CSS之常用属性、元素的显示模式、盒模型(下)

三、盒模型

🍎总述

每一个 HTML 元素就相当于是一个矩形的 "盒子"

这个盒子由这几个部分构成

  • 边框 border
  • 内容 content
  • 内边距 padding
  • 外边距 marg

先来张图

fab39690f14f49159dca388647d46e10.png

5c54367074aa4a1f94ddc38aea476236.png

🍎边框

基础属性

  1. 粗细: border-width
  2. 样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
  3. 颜色: border-color

🌰一个边框的代码栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- witdth粗细,border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框,颜色: border-color -->
    <style>
        .test {
            width: 200px;
            height: 100px;
            border-width: 50px;
            border-style: solid;
            border-color: brown;
        }
    </style>
</head>
<body>
    <div class="test">
        这是一个块级元素
    </div>
</body>
</html>


效果展示


c8c2d8735e8e4b928c83cb703b0d53ad.png

🌰再看一个栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- border-witdth粗细,border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框,颜色: border-color -->
    <!-- 通过通配符选择器,我们就可以使我们所有的盒子都不被边框撑大 -->
    <style>
        * {
            box-sizing: border-box;
        }
        .test {
            width: 200px;
            height: 100px;
            /* border-width: 10px;
            border-style: solid;
            border-color: brown; */
            border: 10px solid brown;
            /* 简写的和上面的效果是一样的 */
        }
        p {
            width: 200px;
            height: 100px;
            border-top: 20px dashed green; 
            border-bottom: 10px dotted gray;
            border-left: 10px solid yellow;
            border-right: 5px solid blue;
        }
    </style>
</head>
<body>
    <div class="test">
        这是一个块级元素
    </div>
    <p>
        这是一个段落
    </p>
</body>
</html>

3c3b3aed9b0f483a841657b73cfe77cf.png

注意,通常情况下,我们设置的width和height是指的内容的大小,而一个盒子有了边框后,默认情况下我们的盒子会被撑大

但如果你设置了border-box,让盒子不再撑大。这时width和height指的就是整体盒子的大小,相当于内容大小就被缩水了


 

🍎内边距

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


基础写法


默认内容是顶着边框来放置的. 用 padding 来控制这个距离

可以给四个方向都加上边距


padding-top

padding-bottom

padding-left

padding-right


🌰栗子


2b054d1aeb9349dda02396a60a70a4d8.png


637590b4ceb1435d974299143e3d4510.png

一点补充:复合写法

可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]


padding: 5px; 表示四个方向都是 5px

padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px

padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px

padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)


🍎外边距

基础写法

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

可以给四个方向都加上边距

  • margin-top
  • margin-bottom
  • margin-left
  • margin-rig


90b21802268843aba12e617eddffd86c.png

324de40803544cccabc6adc10acbbe54.png

288dfdeb9bb34bc1bba971546723e5f8.png

🍎块级元素居中

a11928ca01ce481081a41540bb51f4fb.png

6edc1d98751c414d99ab13c530c59846.png

🔔注意:

这个水平居中的方式和 text-align 不一样.

margin: auto 是给块级元素用得到.

text-align: center 是让行内元素或者行内块元素居中的.

另外, 对于垂直居中, 不能使用 "上下 margin为auto"的方式

 


🍎去除浏览器默认样式

2e065ef21b374e8591f2cff56d471f0e.png

四、弹性布局

📝初体验

使用前

327615d4302f41b2931c1f947381f572.png 使用后


cb3c522625fd4483a8dab06820537ed9.png


进一步的使用

e0f585155c5f468f92c7ccdf4a31e564.png



a3251e4b950d4fd0a247c30268b21785.png


📝flex 布局基本概念

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

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

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


基础概念:

被设置为 display:flex 属性的元素, 称为 flex container

它的所有子元素立刻称为了该容器的成员, 称为 flex item

flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

10ab501782474034ae6aba5c75185198.png

6baf1bb919d149909238c6653ca30781.png

📝 实现元素的居中

73089bbb9a534ad0a5f4811404418375.png


8bfda80a79544843a9f04e2fde4fd37e.png

📝注意

理解 stretch(拉伸):

这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度, 那么就会填充满父元素的高度

align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents

相关文章
|
2月前
|
前端开发 JavaScript
如何利用 CSS3 动画实现元素的淡入淡出效果?
在上述代码中,定义了一个名为 `fade-in` 的CSS类,其初始透明度为0,并设置了淡入的过渡效果。当通过JavaScript为元素添加 `active` 类时,元素的透明度变为1,实现淡入效果;当再次点击按钮移除 `active` 类时,元素又会逐渐淡出。通过这种方式,可以根据用户的操作灵活地控制元素的淡入淡出效果。
360 60
|
2月前
|
数据采集 前端开发 JavaScript
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
本文介绍了如何使用 Puppeteer 结合 CSS 选择器抓取动态网页中的关键元素,以亚航网站的特价机票信息为例,通过设置代理 IP、User-Agent 和 Cookie 等技术手段,有效提升爬虫策略,实现高效、稳定的爬取。
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
|
2月前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
69 7
|
2月前
|
前端开发
CSS 浮动属性讲解和使用
本文介绍了CSS中的浮动(float)属性,包括其基本功能、属性选项及其在网页布局中的应用。浮动使元素脱离文档流,向左或右排列,周围元素随之调整。文章还详细讲解了清除浮动的方法,如使用clear属性、设置父元素高度、利用overflow属性、伪元素等,以解决因浮动导致的布局问题。最后,强调了浮动在创建复杂布局时的作用,并预告后续内容。
39 2
|
2月前
|
前端开发
CSS transition过渡属性详解
本文介绍了CSS中`transition`属性的作用、用法及实例。`transition`用于在元素属性变化时添加平滑过渡动画,通过设置`transition-property`、`transition-duration`、`transition-timing-function`和`transition-delay`等属性值,可以精细控制过渡效果。文末提供了HTML示例代码,展示了如何使用`transition`实现鼠标悬停时背景颜色的平滑变化。
74 1
|
2月前
|
Web App开发 前端开发 iOS开发
css所有缩写属性,CSS属性简写整理
css所有缩写属性,CSS属性简写整理
42 1
|
9天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
80 24
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
72 7
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
46 6

热门文章

最新文章