Python HTML和CSS 6:margin的使用技巧 和 元素溢出

简介: Python HTML和CSS 6:margin的使用技巧 和 元素溢出

一、margin的使用技巧



  • 1.1、margin 的使用技巧一:设置元素水平居中margin:x auto;,举例如下


<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>margin使用技巧</title>
     <style type="text/css">
           .box1{
               width: 200px;
               height: 200px;
               background-color: aqua;
               /* 盒子水平居中 */
               /*margin: 100px auto 100px auto;*/
               margin: 100px auto 100px;
           }
     </style>
</head>
<body>
     <div class="box1"> margin使用技巧 </div>
</body>
</html>

提示:使用 auto 我们可以使盒子水平居中,缺点是:对于垂直设置无效


  • 1.2、margin 的使用技巧二:margin负值让元素位移及边框合并


  • <1>、margin负值让元素位移,举例如下:平时我们定义一个标签,它距离浏览器都会有8px的距离,去除这8px的方法是给 body 设置margin为0,如下


image.png

<2>、margin边框合并(提示:只会合并垂直边框,左右不会合并),做如下一个例子

  • 制作一个202*156的盒子,边框1像素黑色,距离浏览器顶部100px,水平居中。
  • 制作下面的菜单效果:

image.png

  • 代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>margin负值让元素位移及边框合并</title>
    <style type="text/css">
        body{
            margin: 0px;
        }
        .box1{
            width: 202px;
            height: 156px;
            margin: 100px auto 0px;
            background-color: pink;
         }
        .box1 div{
            width: 200px;
            height: 30px;
            border: 1px solid green;
            background-color: gold;
            margin-top: -1px;
        }
    </style>
</head>
<body>
    <div class="box1">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>

提示:关键的地方在于 margin-top: -1px; 的使用,上下边距合并


  • 1.3、margin 的使用技巧三:外边距合并:外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。解决方法如下:


image.png

  • (1)、使用这种特性(外边距合并的特性)


<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>外边距合并</title>
     <style type="text/css">
          .box{
              width: 500px;
              border: 1px solid #000;
              margin: 50px auto 0px;
          }
          .box div{
              margin: 20px;
          }
     </style>
</head>
<body>
   <div class="box">
      <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
      <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
      <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
      <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
   </div>
</body>
</html>
  • (2)、设置一边的外边距,一般设置margin-top


提示:要是单独设置每个div的外边距,在垂直合并的时候,谁的大边距以谁的为准

  • (3)、将元素浮动或者定位


  • 1.4、margin 的使用技巧四:margin-top 塌陷:在两个盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top设置失败,我们看下面的一个例子


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>margin-top 塌陷</title>
    <style type="text/css">
        .box1{
            width: 202px;
            height: 150px;
            background-color: pink;
        }
        .box1 div{
            width: 100px;
            height: 100px;
            background-color: aqua;
            margin-top: 25px;
        }
    </style>
</head>
<body>
    <div class="box1">
         <div></div>
    </div>
</body>
</html>


image.png

分析:我们可以看到上面代码:margin-top: 25px;没有起到任何效果,解决方法如下:


  • (1)、外部盒子设置一个边框:在上面代码.box1{}中加一下 border: 1px solid white;,如下,那么 margin-top 塌陷的问题就会被解决


.box1{
    border: 1px solid white;
}
  • (2)、外部盒子设置 overflow:hidden,那么 margin-top 塌陷的问题也会被解决


.box1{
    overflow: hidden;
}

这种方法有一点问题是当我们做溢出的时候会把溢出的元素给裁减掉


  • (3)、使用伪元素类:给外部盒子添加 clearfix 类选择器(clearfix 名字是随便起的,约定俗成大家用 clearfix),并使用伪元素,如下:也可以解决margin-top 塌陷的问题,这种解决方式类似于 方式(1)


.clearfix:before{
    content: "";
    display: table;
}
<div class="box1 clearfix">
     <div></div>
</div>

提示:只是 margin-top 会有塌陷,左右是没有塌陷的


二、css元素溢出



  • 2.1、当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。我们先看一个溢出的例子,代码如下

image.png


2.2、由上面 2.1 我们看到了元素的溢出,因此牵涉出 overflow 属性


image.png

image.png

  • (1)、visible 缺省值,默认值,溢出的元素可见。内容不会被修剪,会呈现在元素框之外。
  • (2)、hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。
  • (3)、scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。(不管有没有溢出,都会显示滚动条)
  • (4)、auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。(当有溢出的时候才会显示滚动条,否则不会显示滚动条)
  • (5)、inherit 规定应该从父元素继承 overflow 属性的值。(很少用)
目录
相关文章
|
1月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
86 1
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
210 1
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
盒模型 盒模型: 所谓盒模型,就是浏览器为页面中的每个HTML元素生成的矩形盒子。 这些盒子们都要按照可见板式模型在页面上排布。 可见的板式模型主要由三个属性控制:position 属性、display 属性和 float属性。 position属性控制页面上元素间的位置关系。 display属性控制元素是堆叠、并排或者不在页面上显示。 float属性提供控制的方法,以便于把元素组成成多栏布局。 盒模型讲解: 在默认的情况下,每个盒子的边框是不可见的,背景也是透明的。 所以我们 不能直接的看到页面中的盒
127 1
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
121 1
|
1月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
183 0
|
5月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
63 0
|
5月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
5月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
5月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录

推荐镜像

更多