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 属性的值。(很少用)
目录
相关文章
|
9天前
|
前端开发 JavaScript 开发工具
【HTML/CSS】入门导学篇
【HTML/CSS】入门导学篇
19 0
|
30天前
|
大数据 Python
使用Python查找字符串中包含的多个元素
本文介绍了Python中查找字符串子串的方法,从基础的`in`关键字到使用循环和条件判断处理多个子串,再到利用正则表达式`re模块`进行复杂模式匹配。文中通过实例展示了如何提取用户信息字符串中的用户名、邮箱和电话号码,并提出了优化策略,如预编译正则表达式和使用生成器处理大数据。
20 1
|
2天前
|
前端开发
css中几种隐藏元素的方法
css中几种隐藏元素的方法
7 0
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
11天前
|
JSON JavaScript 前端开发
js是什么、html、css
js是什么、html、css
|
12天前
|
XML 前端开发 JavaScript
css和html
【4月更文挑战第7天】css和html
12 0
|
17天前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性
N..
|
25天前
|
前端开发 容器
CSS 网页布局元素
CSS 网页布局元素
N..
23 1
|
28天前
|
前端开发 容器 内存技术
使用CSS3画出一个叮当猫HTML源码
本文教程介绍了如何使用CSS3绘制叮当猫,通过HTML结构和CSS样式逐步构建叮当猫的各个部位,如头部、脸部、脖子、身体、手脚等。代码示例展示了如何利用渐变、边框、阴影和定位技巧实现三维效果和细节特征。此外,还添加了眼珠的动画效果,让叮当猫的眼睛能够转动。整个过程适合对CSS3感兴趣的读者参考学习,以提升动态图形创作技能。
16 0
使用CSS3画出一个叮当猫HTML源码