CSS布局基础(标签类型,盒子模型)

news2024/11/26 5:54:08

布局基础 元素显示类型,盒子模型

    • 标签类型
      • 块元素
        • 常见块元素
      • 行内元素
        • 常见行内元素
      • 行内块元素
        • 常见行内块
      • 模式转换
      • 显示类型显著区别
    • 盒子模型
      • 盒子组成
      • 布局描述
      • 边框
        • 圆角
      • 内边距
      • 外边距
        • 块元素居中
        • 盒子内行内(块)元素居中
      • ==外边距使用陷阱==
        • 两盒子外边距相遇时,不会叠加两个值,而是取其中较大的一个
        • 两个嵌套盒子同时设置,上外边距(margin-top)时,内部盒子的上边距会被计算到 外面的盒子上,导致内不盒子上外边距不生效
        • 清除内外边距,便于布局计算

标签类型

块元素

  • 独占一行,默认宽度100%
  • 可设置宽高,内外边距
  • 大部分块元素内部可以放 任意元素
  • 文字类块元素 p / h1-h6内部,不能放块元素

常见块元素

  • h1-h6
  • p
  • div
  • ul
  • ol
  • dl
  • li

行内元素

  • 在同一行显式
  • 不能直接设置宽高,默认宽高就是实际内部内容宽高
  • 内部只能容纳文本或者行内元素
  • a 标签内不能放 a 标签, 但可以放块元素(最好将a先转成行内块)

常见行内元素

  • span
  • a
  • b
  • strong
  • em
  • del
  • s
  • ins
  • u

行内块元素

行内元素和块元素可手动转为行内块 display: inline-block;

  • 在同一行显式
  • 可以设置宽高

常见行内块

  • img
  • input
  • td

模式转换

转行内块元素

display: inline-block;

转行内

display: inline;

转块元素

display: block;

显示类型显著区别

块元素:独占一行,可设置宽高
行内元素:同一行,不可设置宽高
行内块元素:同一行,可设置宽高

根据实际情况,进行选择。

盒子模型

盒子组成

  • 边框
  • 外边距
  • 内边距
  • 内容

布局描述

  • 选择标签
  • 利用CSS布局
  • 向盒子添加展示内容

边框

注意: 默认布局方式,边框会撑大盒子大小;要么手动计算盒子大小,减去边框大小。要么将盒子定义为怪异盒模型 box-sizing: border-box;

  • 粗细
border-width: 1px;
  • 表格边框合并
border-collapse: collapse | separate(默认,叠加显示,边框会变粗)
  • 颜色
border-color: #fff;
  • 样式
border-style: solid | dashed | 等等
  • 复合表示
border:   border-width border-style border-colorp;

圆角

盒子边框 角默认是 直角,可通过css设置为圆角。
实现原理为:以指定半径的圆去与边角相切,然后以圆角代替原有的直角。使用固定值时,如果圆角值超过盒子高度的一半,仅以盒子高度一般作为半径
盒子高50px,而固定值圆角一旦超过 25px,就一直是下面这个效果
在这里插入图片描述
这里的半径要注意,当使用百分比作为属性值时,其水平和垂直方向的实际半径大小是按盒子宽高实际计算的,也就是当盒子宽高一致时,画出来的是一个椭圆而不是圆
在这里插入图片描述
只有当盒子宽高相同时,画出来的才是圆
在这里插入图片描述

border-radius: px 或者 25%;
border-radius: 左上 右上 右下 左下; 
border-radius: 左上 右上/左下 右下; 
border-radius: 左上/右下 右上/左下; 

以上为同时设置多个角的圆角效果,还可以单独指定一个角的圆角效果
有两种方式定义单个圆角位置

  • 上下左右
 border-top-left-radius: 10%;
 border-bottom-left-radius: 20%;
 border-top-right-radius: 30%;
 border-bottom-right-radius: 50%;
  • 起止位置 start = left,end = right (以左上角为起点,顺时针)
 border-start-start-radius: 10%;
 border-start-end-radius: 20%;
 border-end-start-radius: 30%;
 border-end-end-radius: 40%;

内边距

定义盒子边框和盒子内元素的距离,当盒子明确(继承不算)指定了宽高时,会撑大传统盒模型的大小

padding: 10px;
padding-left/right/top/bottom: 10px;

外边距

定义盒子边框和外部元素的距离。

margin: 10px;
margin-left/right/top/bottom: 10px;

块元素居中

  • 设置宽度
  • margin 10px auto;

盒子内行内(块)元素居中

给盒子设置 内容居中属性

text-align: center;

外边距使用陷阱

两盒子外边距相遇时,不会叠加两个值,而是取其中较大的一个

解决:建议外边距只设一个方向

两个嵌套盒子同时设置,上外边距(margin-top)时,内部盒子的上边距会被计算到 外面的盒子上,导致内不盒子上外边距不生效

解决:
方式一:

  • 给父元素设置一个边框(可以解决,但是边框粗细不能为0,否则无效。因此会影响整体布局)

方式二:

  • 不使用子元素的 margin-top ,改用父元素的 padding-top 实现,注意传统盒子模型下,可能会撑大父元素,影响整体布局

方式三:

  • 给父元素设置 overflow:hidden; 属性

方式四:

  • 给父元素设置(固定/绝对)定位或者浮动,这三种都是利用父元素脱离文档流实现的,但是不推荐,会影响整体布局

方式五:

  • 改变父元素显示方式,简单试了下,改成 inline-block / table …

方式六:

  • 使用伪类元素实现,借鉴了方式五
    .test1::before{
      content: "";
      display: table;
    }

清除内外边距,便于布局计算

* {
  margin: 0;
  padding: 0;
}

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

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

相关文章

【进阶C语言】动态版通讯录的实现(详细讲解+全部码源)

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于C语言进阶系列,本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数…

Linux基础IO【重定向及缓冲区理解】

✨个人主页: 北 海 🎉所属专栏: Linux学习之旅 🎃操作环境: CentOS 7.6 阿里云远程服务器 文章目录 🌇前言🏙️正文1、文件描述符1.1、先描述,再组织1.2、files_struct1.3、分配规则…

Java数组的学习(基础)

目录 第一章:数组的概念介绍 1.数组的概念 2.数组的初始化/数组的创建/数组的定义 第二章:数组的使用 数组添加元素的方法/数组的赋值 数组的遍历 数组之选择排序的升序 数组之冒泡排序的升序 数组的最小值 数组的反转 数组中常见的异常 第三…

Python程序员想要转行,可以从这几个方面着手

最近有很多朋友问我一个问题,不论是我们做程序员还是做产品经理或者其他行业,到了30岁或35岁之后,都会面临各种各样的问题,比如达到职业天花板。有没有一种方法能够解决这种问题呢?我想分享一下我的观点和身边的案例。…

《Netty》从零开始学netty源码(四十七)之PooledByteBuf的方法

setBytes() 从channel中读取数据并写到PooledByteBuf中,分配缓存的过程与getBytes一样,只是duplicate为false。 capacity() 动态更新容量,根据新传入的容量值更改length。 如果新容量值与旧值相同则无需扩容如果为非池化内存则根据新容量值…

Zabbix部署详解

文章目录 Zabbix安装部署一、zabbix-server端部署二、zabbix-agent端部署 Zabbix安装部署 环境准备 VMware Workstation Pro 15.0 版本 系统 Centos7 内存 4G 处理器 2G 硬盘 50G 网络适配器 NAT 两台服务器,一台做zabbix-server、一台做zabbix-agent 关闭防火墙、…

【华为OD机试真题】信号发射和接收(javaC++python)100%通过率 超详细代码注释

信号发射和接收 知识点数组栈 单调栈时间限制: 1s 空间限制: 256MB 限定语言:不限 题目描述: 有一个二维的天线矩阵,每根天线可以向其他天线发射信号也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收东向或南向发…

unity-VRTK-simulator开发学习日记2(抛物线 导包|使用|调用方法)

导包 使用抛物线 1.层级目录下添加抛物线曲线 2.将跟踪控制器 给到抛物线的“跟随资源” (选择哪只手射出射线) 3.激活按键 找到模拟手柄按键 找到simulator的交互的几个按键(ButtonOne为例) value,默认值为false&a…

Doris(20):Doris的函数—数学函数

1 查看函数名 show builtin functions in test_db; 2 abs(double a) 功能: 返回参数的绝对值 返回类型:double类型 使用说明:使用该函数需要确保函数的返回值是整数。 3 acos(double a) 功能: 返回参数的反余弦值 返回类型:double类型 MySQL 中反余弦函数 ACOS(…

【五一创作】使用Scala二次开发Spark3.3.0实现对MySQL的upsert操作

使用Scala二次开发Spark实现对MySQL的upsert操作 背景 在我们的数仓升级项目中,遇到了这样的场景:古人开发的任务是使用DataStage运算后,按照主键【或者多个字段拼接的唯一键】来做insert then update,顾名思义,也就…

能上网的ChatGPT,会带来什么改变

最近关注AI的人,应该会注意到这条新闻。 ChatGPT官方推出新模式—Default(GPT-3.5)with browsing 这个是之前ChatGPT没有的功能,ChatGPT以前的训练数据是在2021年左右,并不知道最近的新闻。 现在ChatGPT 能够联网以…

AIGC提词生成图片(人物照片)练习笔记

文生图, 图生图 等 AIGC 创作大火, 也来体验一下吧. 本文记录了环境搭建过程与使用心得. 如果动手能力弱或只想省心, 有 环境要求 列出来我的环境吧: CPU, AMD Ryzen 7 5800X 8-Core ProcessorRAM, 32GGPU, NVIDIA GeForce RTX 2070 SUPER (8G)OS, Windows 11 专业版开发环境…

Qt MSVC开发

环境搭建 安装Virsual Studio,版本可以选择最新版本,我安装的时vs2022,安装时需要勾选 C 桌面开发 安装QT, 下载地址:https://download.qt.io/official_releases/online_installers/,安装时需要选择MSVC 2019 64-bit。…

Packet Tracer - 配置 RIPv2

Packet Tracer - 配置 RIPv2 目标 第 1 部分:配置 RIPv2 第 2 部分:验证配置 拓扑图 背景信息 尽管在现代网络中极少使用 RIP,但是作为了解基本网络路由的基础则十分有用。 在本活动中,您将使用适当的网络语句和被动接口配置…

【LeetCood206】反转链表

题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 答案1: 新建链表,遍历原链表,一个一个头插到新建的链表.直到结点为null public ListNode reverseList(ListNode head) {ListNode secondListHead n…

【细读Spring Boot源码】监听器合集-持续更新中

前言 监听器汇总 归属监听器名称作用cloudBootstrapApplicationListenercloudLoggingSystemShutdownListenercloudRestartListenercloudLoggingSystemShutdownListenerspringbootEnvironmentPostProcessorApplicationListener用于触发在spring.factories文件中注册的Environm…

osg操控器之动画路径操控器osgGA::AnimationPathManipulator分析

目录 1. 前言 2. 示例代码 3. 动画路径操控器源码分析 3.1. 构造函数 3.2. home函数 3.3. handle函数 3.3.1 帧事件处理 3.3.2. 按键事件处理 4. 主要接口说明 1. 前言 osg官方提供了很多操控器,在源码目录下的src\osgGA目录下,cpp文件名含有Ma…

初识AUTOSAR

目录 应用层 Runnable Port 运行时环境 基础软件层 总结 AUTOSAR,全称为Automotive Open System Architecture,即汽车开放系统架构。它最初于2003年由当时全球各家顶级汽车制造商(奔驰、宝马、大众等)、零部件供应商&#x…

【Unity入门】21.预制体

【Unity入门】预制体 大家好,我是Lampard~~ 欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (一)预制体制作 (1)什么是预制体 这一章节的博客,我们将会学习一个预制体的概念。什么是…

【C语言进阶】-- 重点字符串函数内存函数及其模拟实现(strlen,strcmp,strcat...memcpy,memmove)

目录 1、strlen 1.1 strlen的模拟实现 2、strcpy 2.1 strcpy的模拟实现 3、strcat 3.1 strcat的模拟实现 4、strcmp 4.1 strcmp的模拟实现 5、strstr 5.1 strstr的模拟实现 6、memcpy 6.1 memcpy的模拟实现 7、memmove 7.1 memmove的模拟实现 前言 C语言中对字符…