CSS day_03(6.14) 内外间距、元素隐藏溢出、版心

2023-10-13 13:50

本文主要是介绍CSS day_03(6.14) 内外间距、元素隐藏溢出、版心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、内间距

元素的内间距叫做padding

1.四个方向的内间距

上内间距 padding-top

右内间距 padding-rigth

下内间距 padding-bottom

左内间距 padding left

2.内间距的简写形式

简写形式:

padding:10px;   上右左下:10

padding:10px 20px;  上下10  左右20

padding:10px 20px 30px;  上10 左右20 下30

padding:10px  20px 30px 40px;   上10右20下30左40

永远是上右下左(按顺时针顺序)4个方向,没有的就找对门

3.内联元素的内间距

内联元素的左右间距正常生效

上下内间距,会产生“视觉效果”实际没作用,还会出现布局样式的堆叠,所以内联尽量不要使用上下内间距。

img比较特殊,图片的四个方向的padding均生效

二、外间距

外间距margin设置的是当前元素在四个方向上与其他元素的距离,这个距离不属于当前元素本身的大小,利用外间距还能够实现元素的移动

1.四个方向的外间距

上外间距 margin-top,元素顶部与其他元素的距离,移动的是元素本身

右外间距 margin-rigth,元素右侧与其他元素的距离,移动的是右侧的其他元素

下外间距 margin-bottom,元素底部与其他元素的距离,移动的是底部的其他元素

左外间距 margin-left,元素左侧与其他元素的距离,移动的是元素本身

记忆诀窍:以上为尊,以左为尊,要礼让,所以是元素本身移动

2.外间距的简写形式

简写形式:

margin:10px;   上右左下:10

margin:10px 20px;  上下10  左右20

margin:10px 20px 30px;  上10 左右20 下30

margin:10px  20px 30px 40px;   上10右20下30左40

永远是上右下左(按顺时针顺序)4个方向,没有的就找对门

3.外间距的重叠【难点】

在文档流的流式布局中:

1.块级元素在竖直方向上相邻的margin会发生合并现象,取最大值显现

解决:既然会重叠,那我们给一个元素设置margin就好了

2.父元素中第一个和最后一个子元素都有和父元素"重叠的边",实际是margin超出了父元素的范围

3.由于首尾子元素与父元素贴合的原因,无法区分边归属于谁,所以子元素的上下外间距会带着父元素一起动

解决父子重叠问题【要点】

1.给父元素加边框可以把子元素完全包裹进来(包括首尾子元素margin),解决父子元素贴边的问题

2.可以给父元素增加上、下内间距,把第一个和最后一个子元素挤开(推荐)

3.给父级设置块级格式化上下文(BFC)overflow:hidden;(先记着,后面细说)

4.外间距的视觉效果

四周的空间并不在元素内部,而是在元素内部

margin不带任何的背景颜色

对于行内元素(比如span a i b...)左右的margin生效,上下的margin不生效

对于img,行内块元素(button、input...)等四个方向的margin是生效的

 

5.外间距的取值

正负值都可以用,正值是增加距离,0是紧挨着,负值是减少距离

auto 自动,只能在流式布局中让块级元素左右方向的外间距自动计算成等值,出现水平居中的效果

注意移动时,上/下  左/右 只能选一个方向,不能既往左移动,又往右移动

三、元素的隐藏与显示

1.display:none; 脱离文档流的消失,元素隐藏,且不保留布局空间

2.visibility:hidden; 隐藏元素,但保留布局空间

   visibility:visible; 默认,不隐藏

不脱离文件流

3.opacity:0; 透明元素但保留布局空间

透明值0~1 0完全透明 1完全不透明

注意:这里的元素透明度,包含元素中所有的内容

四、页面的版心

版心的概念指的是页面布局中主体内容所在的区域

一般在浏览器居中显示的主体部分叫做版心,一般用于PC端(笔记本电脑、台式机等)布局

基于显示器的常见分辨率,一般有960px、1024px 、1200px

注意:PC端页面一定要写版心,版心的宽度由设计提供的。

五、元素的溢出

当前元素超出了父级元素的范围空间时,会出现子元素溢出的情况

一般默认块级元素没有范围(宽高),子元素可以可以随意增加,它会撑大父元素

只有父元素限制范围,并且子元素的内容又大于父元素的限制范围才会出现溢出。

overflow:同时控制水平与竖直方向的溢出(一个元素的内容从宽/高中溢出) 

overflow-x:水平方向溢出(一个元素的内容从宽中溢出)

overflow-y:竖直方向溢出(一个元素的内容从高中溢出)

可取的属性值:

overflow: visible; /*默认值,溢出可见*/

overflow: hidden; /*溢出隐藏,溢出部分截掉*/

overflow: scroll; /*侧边和下边都有滚动条 */

overflow: auto; /*自动加滚动条,需要的时候加*/

注意:

计算机中的坐标轴与数学概念不一样,屏幕的左上角才是原点,所以x指的是向右,y指的是向下

六、怪异盒子模型(边框盒子)

之前我们学习的是默认的盒子模型计算方案,内容盒子box-sizing:content-box;

边框盒子:box-sizing:border-box;

一个元素水平方向上占用的总空间(边框盒子):

margin-left+width(padding+border+content)+margin-right

一个元素竖直方向上占用的总空间(边框盒子):

margin-top+height(padding+border+content)+margin-bottom

七、拓展

面试题:如果两张图片中间想要留一点空白,可以有哪些实现方案?哪种好?为什么?

  1. 添加透明边框 不适用于图片本身需要边框的情况
  2. 添加外间距 可以,但是不好,margin会影响元素在页面占据的总宽度
  3. 添加内边距(推荐) 配合边框盒子使用,是最佳方案

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title>图片之间留白方案</title>

        <style>

            /* 方案1:给图片添加透明边框:不适用于图片本身需要边框的情形 */

            /* 给左边图片加右边框 */

            /* .left {border-right: 30px solid rgba(255,0,0,0);}*/

            /* 给右边图片加左边框 */

            /* .right {border-left: 30px solid rgba(0,255,0,0.3);} */

           

            /* 方案2:添加外间距 */

            /* 给左边图片加右外间距 */

            /* .left {margin-right: 35px;} */

            /* 给右边图片加左外间距 */

            /* .right {margin-left: 35px;} */

           

            /* 方案3:添加内边距 */

            .left {padding-right: 40px;}

            .right {padding-left: 40px;}

           

            /* 但是!!!无论是边框 外边距 内边距 添加哪个都会导致宽度变大,导致元素溢出 */  

        </style>

    </head>

    <body>

        <img src="img/2.jpg" class="left"><img src="img/2.jpg" class="right">

    </body>

</html>

 

这篇关于CSS day_03(6.14) 内外间距、元素隐藏溢出、版心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/203662

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',