CSS样式(盒子模型,内外边距等设置)

news2024/12/17 9:58:57

盒子模型

目标:掌握盒子模型组成部分,使用盒子模型布局网页区域

01-选择器

结构伪类选择器

基本使用

作用:根据元素的结构关系查找元素。

选择器说明
E:first-child查找第一个E元素
E:last-child查找最后一个E元素
E:nth-child(N)查找第N个E元素(第一个元素N值为1)
li:first-child {
  background-color: green;
}

:nth-child(公式)

功能公式
偶数标签2n
奇数标签2n+1;2n-1
找到5的倍数的标签5n
找到第5个以后的标签n+5
找到第5个以前的标签-n+5

提示:公式中的n取值从 0 开始。

伪元素选择器

作用:创建虚拟元素(伪元素),用来摆放装饰性的内容
在这里插入图片描述

选择器说明
E::before在E元素里面最前面添加一个伪元素
E::after在E元素里面最后面添加一个伪元素
div::before {
  content: "before 伪元素";
}
div::after {
  content: "after 伪元素";
}

注意点:

  • 必须设置 content: ””属性,用来 设置伪元素的内容,如果没有内容,则引号留空即可
  • 伪元素默认是行内显示模式
  • 权重和标签选择器相同

02-PxCook

PxCook(像素大厨) 是一款切图设计工具软件。支持PSD文件的文字、颜色、距离自动智能识别。

  • 开发面板(自动智能识别)
  • 设计面板(手动测量尺寸和颜色)

使用方法:创建项目 → 输入 项目名称、项目类型 Web → 单击按钮【创建项目】 → 单击按钮【添加】,导入设计稿

在这里插入图片描述

03-盒子模型

作用:布局网页,摆放盒子和内容。

盒子模型-组成

  • 内容区域 – width & height
  • 内边距 – padding(出现在内容与盒子边缘之间)
  • 边框线 – border
  • 外边距 – margin(出现在盒子外面)
div {
  margin: 50px;
  border: 5px solid brown;
  padding: 20px;
  width: 200px;
  height: 200px;
  background-color: pink;
}

在这里插入图片描述
在这里插入图片描述

边框线

四个方向

属性名:border(bd)

属性值:边框线粗细 线条样式 颜色(不区分顺序)

属性值线条样式
solid实线
dashed虚线
dotte点线
div {
  border: 5px solid brown;
  width: 200px;
  height: 200px;
  background-color: pink;
}
单方向边框线

属性名:border-方位名词(bd+方位名词首字母,例如,bdl)

属性值:边框线粗细 线条样式 颜色(不区分顺序)

div {
  border-top: 2px solid red;
  border-right: 3px dashed green;
  border-bottom: 4px dotted blue;
  border-left: 5px solid orange;
  width: 200px;
  height: 200px;
  background-color: pink;
}

内边距

作用:设置 内容 与 盒子边缘 之间的距离。

  • 属性名:padding / padding-方位名词
div {
  /* 四个方向 内边距相同 */
  padding: 30px;
  /* 单独设置一个方向内边距 */
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 40px;
  padding-left: 80px;
  width: 200px;
  height: 200px;
  background-color: pink;
}

提示:添加 padding 会撑大盒子。

  • padding 多值写法
取值个数示例含义
一个值padding:10px;四个方向内边距均为10px
四个值padding:10px 20px 40px 80px;上:10pX;右:20px;下:40px;左:80px
三个值padding:10px 40px 80px;上:10px;左右:40px;下:80px
两个值padding:10px 80px;上下:10px;左右:80px

技巧:从开始顺时针赋值,当前方向没有数值则与对面取值相同

尺寸计算

在这里插入图片描述

默认情况:盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸

结论:给盒子加 border / padding 会撑大盒子

解决:

  • 手动做减法,减掉 border / padding 的尺寸
  • 內减模式:box-sizing: border-box

外边距

作用:拉开两个盒子之间的距离

属性名:margin

提示:与 padding 属性值写法、含义相同

版心居中

在这里插入图片描述

左右 margin 值 为 auto(盒子要有宽度)

div {
  margin: 0 auto;
  width: 1000px;
  height: 200px;
  background-color: pink;
}

清除默认样式

清除标签默认的样式,比如:默认的内外边距。

/* 清除默认内外边距 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/* 清除列表项目符号 */
li {
  list-style: none;
}

元素溢出

作用:控制溢出元素的内容的显示方式。

属性名:overflow

属性值效果
hidden溢出隐藏
scroll溢出滚动(无论是否溢出,都显示滚动条位置)
auto溢出滚动(溢出才显示滚动条位置)

外边距问题

合并现象

场景:垂直排列的兄弟元素,上下 margin合并

现象:取两个 margin 中的较大值生效

在这里插入图片描述

.one {
  margin-bottom: 50px;
}
.two {
  margin-top: 20px;
}
外边距塌陷

场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题

现象:导致父级一起向下移动

.son {
  margin-top: 50px;
  width: 100px;
  height: 100px;
  background-color: orange;
}

在这里插入图片描述

解决方法:

  • 取消子级margin,父级设置padding
  • 父级设置 overflow: hidden
  • 父级设置 border-top

行内元素 – 内外边距问题

场景:行内元素添加 margin 和 padding,无法改变元素垂直位置

解决方法:给行内元素添加 line-height 可以改变垂直位置

span {
  /* margin 和 padding 属性,无法改变垂直位置 */
  margin: 50px;
  padding: 20px;
  /* 行高可以改变垂直位置 */
  line-height: 100px;
}

圆角

作用:设置元素的外边框为圆角。

属性名:border-radius

属性值:数字+px / 百分比

提示:属性值是圆角半径
在这里插入图片描述

  • 多值写法
取值个数示例含义
一个值border-radius:10px;四个角均为10px
四个值border-radius:10px 20px 40px 80px;左上:10px;右上:20px;右下:40px;左下:80px
三个值border-radius:10px 40px 80px;左上:10px;右上+左下:40px;右下:80pX
两个值border-radius:10px 80px;左上+右下:10px;右上+左下:80px

技巧:从左上角开始顺时针赋值,当前角没有数值则与对角取值相同。

  • 正圆形状:给正方形盒子设置圆角属性值为 宽高的一半 / 50%
img {
  width: 200px;
  height: 200px;
  
  border-radius: 100px;
  border-radius: 50%;
}

在这里插入图片描述

  • 胶囊形状:给长方形盒子设置圆角属性值为 盒子高度的一半
div {
  width: 200px;
  height: 80px;
  background-color: orange;
  border-radius: 40px;
}

在这里插入图片描述

盒子阴影(拓展)

作用:给元素设置阴影效果

属性名:box-shadow

属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影

注意:

  • X 轴偏移量 和 Y 轴偏移量 必须书写
  • 默认是外阴影,内阴影需要添加 inset
div {
  width: 200px;
  height: 80px;
  background-color: orange;
  box-shadow: 2px 5px 10px 0 rgba(0, 0, 0, 0.5) inset;
}

04-综合案例-产品卡片

在这里插入图片描述

CSS 书写顺序:

  1. 盒子模型属性
  2. 文字样式
  3. 圆角、阴影等修饰属性

HTML标签

<div class="product">
  <img src="./images/liveSDK.svg" alt="">
  <h4>抖音直播SDK</h4>
  <p>包含抖音直播看播功能</p>
</div>

CSS样式

<style>
  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body {
    background-color: #f1f1f1;
  }

  .product {
    margin: 50px auto;
    padding-top: 40px;

    width: 270px;
    height: 253px;
    background-color: #fff;
    text-align: center;

    border-radius: 10px;
  }

  .product h4 {
    margin-top: 20px;
    margin-bottom: 12px;
    font-size: 18px;
    color: #333;
    font-weight: 400;
  }

  .product p {
    font-size: 12px;
    color: #555;
  }
</style>

05-综合案例二 – 新闻列表

在这里插入图片描述

整体布局

<style>
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

li {
  list-style: none;
}

a {
  text-decoration: none;
}

.news {
  margin: 100px auto;
  width: 360px;
  height: 200px;
  /* background-color: pink; */
}
</style>

<div class="news"></div>

标题区域

<style>
.news .hd {
  height: 34px;
  background-color: #eee;
  border: 1px solid #dbdee1;
  border-left: 0;
}

.news .hd a {
  /* -1 盒子向上移动 */
  margin-top: -1px;
  display: block;
  border-top: 3px solid #ff8400;
  border-right: 1px solid #dbdee1;
  width: 48px;
  height: 34px;
  background-color: #fff;

  text-align: center;
  line-height: 32px;
  font-size: 14px;
  color: #333;
}
</style>

<div class="hd"><a href="#">新闻</a></div>

内容区域

<style>
.news .bd {
  padding: 5px;
}

.news .bd li {
  padding-left: 15px;
  background-image: url(./images/square.png);
  background-repeat: no-repeat;
  background-position: 0 center;
}

.news .bd li a {
  padding-left: 20px;
  background: url(./images/img.gif) no-repeat 0 center;

  font-size: 12px;
  color: #666;
  line-height: 24px;
}

.news .bd li a:hover {
  color: #ff8400;
}
</style>

<div class="bd">
  <ul>
    <li><a href="#">点赞“新农人” 温暖的伸手</a></li>
    <li><a href="#">在希望的田野上...</a></li>
    <li><a href="#">“中国天眼”又有新发现 已在《自然》杂志发表</a></li>
    <li><a href="#">急!这个领域,缺人!月薪4万元还不好招!啥情况?</a></li>
    <li><a href="#">G9“带货”背后:亏损面持续扩大,竞争环境激烈</a></li>
    <li><a href="#">多地力推二手房“带押过户”,有什么好处?</a></li>
  </ul>
</div>

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

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

相关文章

jquery-picture-cut 任意文件上传 (CVE-2018-9208)

jquery-picture-cut 任意文件上传 &#xff08;CVE-2018-9208&#xff09; 漏洞描述 picture cut是一个jquery插件&#xff0c;以非常友好和简单的方式处理图像&#xff0c;具有基于bootstrap或jquery ui的漂亮界面&#xff0c;具有ajax上传&#xff0c;从资源管理器拖动图像…

Error: no matching distribution found for tensorflow-cpu==2.6.*

目录 install_tensorflow()安装过程中遇到的问题 查找解决方案过程中&#xff1a; 解决办法&#xff1a; install_tensorflow()安装过程中遇到的问题 在服务器上安装tensorflow时&#xff0c;遇到了一个报错信息&#xff1a; 在网上找到一个类似的错误&#xff08;TensorFlow…

【EI会议征稿】第二届纯数学、应用数学与计算数学国际学术会议(PACM 2024)

第二届纯数学、应用数学与计算数学国际学术会议&#xff08;PACM 2024&#xff09; 2024 2nd International Cnference on Pure, Applied and Computational Mathematics (PACM 2024) 第二届纯数学、应用数学计算数学国际学术会议 (PACM2024) 将于2024年1月19-21日在中国厦门隆…

利用a标签锚点定位实现切换页面的部分内容

最近在做一个数据可视化大屏的作业&#xff0c;其中需要实现点击不同的按钮&#xff0c;大屏中间内容呈现不同的数据分析图表&#xff0c;页面其他部分不发生改变。之前考虑过复制多个页面然后改变中间的页面&#xff0c;但是这样会导致文件冗余&#xff0c;而且由于静态文件放…

【机器学习项目实战案例目录】项目详解 + 完整源码

前言 大家好&#xff0c;我是阿光。 本专栏整理了《机器学习项目实战案例》&#xff0c;内包含了各种不同的入门级机器学习项目&#xff0c;包含项目原理以及源码&#xff0c;每一个项目实例都附带有完整的代码。 正在更新中~ ✨ &#x1f6a8; 我的项目环境&#xff1a; 平…

为什么要学Selenium自动化测试?

开发人员在编写代码时总是会考虑到不同的应用场景&#xff0c;但也可能会出现实现效果不如预期的情况。同样的原则也适用于测试代码&#xff0c;编写测试代码的主要目的是测试现有产品的功能、发现错误并使产品100%无错误。 有句话说得好&#xff1a;"真相总是比小说更离奇…

台积电2纳米黑科技 - 晶背供电 | 百能云芯

近期&#xff0c;台积电总裁魏哲家在一次法说会中透露了有关2纳米芯片的最新进展&#xff0c;并提到了“晶背供电”技术&#xff0c;这个领域的神秘黑科技正逐渐引起人们的兴趣。 在最近的台积电法说会上&#xff0c;总裁魏哲家不仅提到了2纳米制程的进展&#xff0c;还透露&am…

关于接口|常见电商API接口种类|接口数据类型|接口请求方法

常见接口种类# Http/Https接口: 通过http/https协议传送接口数据(通常按字符串/二进制传输), 如常见的网页表单, https安全性更好 RESTful Api: REST表述性状态传递. 一种设计风格,基于http/https协议, 把一切接口视为资源, 接口要分版本,在统一的域名下管理, 不同的方法(get…

MySQL索引揭秘,详解索引概念与作用,让你的数据库查询快如闪电

简介&#xff1a;MySQL索引的建立对于MySQL的高效运行是很重要的&#xff0c;索引可以大大提高MySQL的检索速度。打个比方&#xff0c;如果合理的设计就像汉语字典的目录页&#xff0c;可以按拼音、笔画、偏旁部首等排序的目录快速查找到需要的字。数据库索引用于快速找出在数据…

若依进行tab页面切换时要求不刷新页面 vue3

若依进行tab页面切换时要求不刷新页面 vue3 看看个人中心怎么实现的 然后vue文件是这样的&#xff0c;注意大小写咯

C语言数据结构之数据结构入门

目录 数据结构介绍 数据结构发展史 何为算法 数据结构基础 基本概念和术语 四大逻辑结构&#xff08;Logic Structure&#xff09; 数据类型 理解复杂度概念 时间空间复杂度定义 度量时间复杂度的方法 程序运行时的内存与地址 编程预备 数据结构介绍 数据结构发展…

新框架Nue.js以及如何搭建框架(详细介绍)

先把官方文档已经github放在这里 链接: Nue官方文档&#x1f448;点击即可跳转 链接: Nue官方github&#x1f448;点击即可跳转 入门 NueJS是一个非常小&#xff08;2.3kb minzipped&#xff09;的JavaScript库&#xff0c;用于构建用户界面。它是Nue工具集的核心。它就像Vue.j…

工业级PoE交换机的工作原理

工业级POE交换机非常普遍&#xff0c;在许多供电不便的项目中被广泛使用&#xff0c;主要用于数据传输通信。大多数工业级POE交换机都是非网管型的&#xff0c;即插即用&#xff0c;配置简单&#xff0c;非常方便&#xff01;然而&#xff0c;您了解它的工作原理吗&#xff1f;…

电机控制运放选型基本知识

概述 电机控制中一般使用运放搭配检流电阻实现电流采样。以下几个运放参数作为基本的考量对象。 共模电压和差模电压 共模电压 这个参数表示运放正负输入端分别对地的电压的平均值&#xff0c;即运放两端输入电压的中点电位&#xff0c;超过规格书限制的共模输入电压将损坏运…

Linux系统下的文件系统、各文件系统下目录结构及作用

要利用任何Linux系统,你需要对Linux的文件和目录(也称文件夹)了解。 Linux shell命令行中,文件和目录不是直观看见。需要使用:cd、ls、pwd等shell命令在目录之间切换。 Linux文件被收集到目录中,目录形成一个层级或树状结构: 一个目录可能包含其他目录,这些目录被称为子…

2023年下半年WSK-PETS5考试内容大纲及题型解析

国家公派留学人员全国外语水平考试&#xff08;WSK-PETS5&#xff09;成绩作为国家留学基金委&#xff08;CSC&#xff09;认可语言成绩证明&#xff0c;一直备受公派访问学者、博士后申请者的关注。随着下半年考试时间的临近&#xff0c;知识人网小编特整理出本次考试内容大纲…

小程序request请求封装

以上为本人的项目目录 1.首先在utils中创建request.js文件封装request请求&#xff0c;此封装带上了token&#xff0c;每次请求都会自带token&#xff0c;需要你从后端获取后利用wx.setStorageSync(token,返回的token),不使用的话就是空。 直接复制即可&#xff0c;需要改一下…

Forrester Wave报告:百度智能云15项能力第一,获评中国人工智能/机器学习平台领导者 入选Forrester领导者象限

Forrester Wave报告&#xff1a;百度智能云15项能力第一&#xff0c;获评中国人工智能/机器学习平台领导者 入选Forrester领导者象限&#xff01; 日前&#xff0c;国际权威咨询机构Forrester发布了最新的《The Forrester Wave™&#xff1a;中国市场人工智能/机器学习平台厂商…

了解单域名证书和通配符证书的区别,选择合适的SSL证书解决方案

随着互联网的不断发展&#xff0c;网站安全性问题一直备受关注&#xff0c;在保护网站数据安全的过程中&#xff0c;SSL证书一直发挥着至关重要的作用。而在选择SSL证书时&#xff0c;单域名证书和通配符证书是两种常见的选择。本文将详细介绍单域名证书和通配符证书的区别&…

Eigen库的学习使用

环境准备 在虚拟机上安装Eigen sudo apt-get install libeigen3-dev 下载好视觉SLAM十四讲对应的代码后&#xff0c;下载KDevelop&#xff0c;KDevelop位于Ubuntu系统的软件仓库&#xff0c;可以使用apt-get来安装。 1.打开project&#xff0c;选择对应目录下的CMakeLists.tx…