前端编程 css 我想知道在这里overflow的作用是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端编程 css 我想知道在这里overflow的作用是啥相关的知识,希望对你有一定的参考价值。

当写上overflow时 页面是正常的 鼠标悬浮在链接上时会变颜色 当我去掉overflow时 他就不显示了 只有鼠标悬浮在链接上时他才会显示 我记得overflow的作用不是规定当内容溢出元素框时发生的事情吗 那么他在这里什么作用

    第一个作用是防止内部元素超出 我们假设我们有一个大盒子,但是盒子里装了很多东西都超过盒子能盛放的大小了,如果添加overflow:hidden后就会扔掉超出部分的内容,示例图如下(我自己画的凑合着看吧)

    第二个作用就是清除浮动,假设我们给我们盒子里的内容浮动了,还是上面我们那个盒子里面的东西都飘起来了,如果盒子本身没宽高的话,他就没了,因为他里面的东西都飘起来了,加上overflow后,他会强制将那些飘起来的那些东西的大小再给盒子保证盒子能够看起来还是那个盒子


纯手打,希望可以帮到您,求采纳

参考技术A 这是因为ul中的li是浮动的(float:left)的,就好比ul是一块地面,li是停放在在上面的飞机,现在飞机都飞到空中了,而地面没有指定大小,它就会自动收缩(相当于height为0的div),这样ul本身的背景色就看不到了,而a标签的颜色是白色,和网页背景色一样,所以就看不到了,只有鼠标悬停的时候,a标签的背景色和字体色才改变,这样就能看到。
解决的办法其实有多种,最标准的做法是给ul设定一个固定的高度值(height),这样不管li如何浮动,ul的大小都不会变。也可以在所有li的结尾处(即</ul>的上面)插入一个清除浮动(clear:both)的块级元素,这样可以强制清除浮动。overflow:hidden在这里起到的作用与css标准中的设定并没有直接关系,但它歪打正着起到了清除浮动的作用,也算是个野路子了。追问

为什么overflow:hidden可以清除浮动? 然后就是clear: both要写在哪里可以达到同样效果?

追答

关于overflow:hidden的具体情况你可以看 神奇的overflow:hidden及其背后的原理

至于clear: both的用法参考下面(假定ul内的li都是浮动的):

<ul>

<li>....</li>

<li>....</li>

<li>....</li>

<br style="clear:both"/>

</ul>

参考技术B overflow主要作用是当内容装不下的时候,自动隐藏部分内容。在这里主要是控制li,当LI内容装不下的时候自动隐藏多余的部分。 参考技术C overflow:hidden;除了可以处理溢出隐藏之外还可以清除浮动,你这里给li设置了float:left;
如果你不给li的父级ul清除浮动,那么ul就是没有高度的(显示背景颜色或背景图片的前提就是,必须有宽和高),所以才会出现这样的问题追问

为什么overflow:hidden可以清除浮动? 为什么我在ul中加了clear:both却无法清除浮动? ul list-style-type:none; background: #777; margin: 0px; padding: 0px; clear: both;

追答

overflow:hidden;清除的是父级的浮动,clear:both清除的是同级的浮动,这两个你要分清楚,你问为什么能清除浮动,其实准确来说是overflow:hidden是清除父级来自子级元素浮动的影响,因为某种原因导致了边距合并的问题(BFC布局规则),bfc布局规则我就不说了,你自己去找教程看看,而overflow:hidden;就是解决边距合并的其中一种方法,并且是最好的一种方法

参考技术D 很多人解释的都对,你可以给ul和li设置高度,宽度试试,就知道他的作用了

前端工作中常用 CSS 知识点整理

1.1文字溢出省略号:

文字单行溢出:

overflow: hidden;            // 溢出隐藏
text-overflow: ellipsis;      // 溢出用省略号显示
white-space: nowrap;         // 规定段落中的文本不进行换行

多行文字溢出:

overflow: hidden;            // 溢出隐藏
text-overflow: ellipsis;     // 溢出用省略号显示
display:-webkit-box;         // 作为弹性伸缩盒子模型显示。
-webkit-box-orient:vertical; // 设置伸缩盒子的子元素排列方式:从上到下垂直排列
-webkit-line-clamp:3;        // 显示的行数

1.2css变量:

CSS变量又称CSS自定义属性,通过在css中自定义属性--var与函数var()组成,var()用于引用自定义属性。谈到为何会在CSS中使用变量,以下使用一个示例讲述。

:root 
 --c-color: orange;

.title 
 background-color: var(--c-color);

1.3渐变:

渐变分为线性渐变径向渐变,这里笔者直接记录的使用方式,也是为了使用的时候更加的直观,这里说下,在使用线性渐变的时候,使用角度以及百分比去控制渐变,会更加的灵活

使用方式:

//渐变(方向)
background: linear-gradient(to right, rgba(255, 255, 255, 0),#3FB6F7,rgba(255,255,255,0));

//渐变(角度)
background: linear-gradient(88deg, #4DF7BF 0%, rgba(77, 247, 191, 0.26) 12%, rgba(77, 247, 191, 0) 100%);

边框渐变:

border有个border-image的属性,类似background也有个background-image一样,通过为其设置渐变颜色后,实现的渐变,后面的数字4x方向偏移量

使用方式:

.border-grident
  margin-top: 20px;
  width: 200px;
  height: 200px;
  border: 4px solid;
  border-image: linear-gradient(to right, #8f41e9, #578aef) 4;

1.4 background-size:cover和contain以及100%

contain:图片放大至满足背景区域的最小边即止,当背景区域与背景图片的宽高比不一致的情况下,背景区域可能会长边下有空白覆盖不全cover:图片放大至能满足最大变时为止,当背景区域与背景图片的宽高比不一致时,背景图片会在短边下有裁切,显示不全

百分比:可以设置两个值

  • 第一个设置宽度,第二个设置高度

  • 如果只设置了一个值,那么第二个值默认会被设置为auto

示例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    *
      margin: 0;
      padding: 0;
    
    .bg
      width: 100%;
      height: 300px;
      background: url('./img/mtk.png');
      /* background-size: contain; */ 
      /* background-size: cover; */
      background-size: 100%;
      background-repeat: no-repeat;
    
  </style>
</head>
<body>
  <div class="bg"></div>
</body>
</html>

结果依次为下图展示:

contain

cover:

百分比(这里是100%):

1.5 css伪类三角形:

首先来看下示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css-三角形</title>
  <style>
    .triangle 
    width: 0;
    height: 0;
    border: 100px solid;
    border-color: orangered skyblue gold yellowgreen;

  </style>
</head>
<body>
  <div class="triangle">
  </div>
</body>
</html>

如果想要一个的三角形,可以让border上边框可见,其他边框颜色都设置为透明

.down-triangle 
    width: 0;
    height: 0;
    border-top: 50px solid skyblue;
    border-right: 50px solid transparent;
    border-left: 50px solid transparent;

1.6 媒体查询

页面头部必须有meta关于viewport的声明

<meta name="’viewport’" content="”width=device-width," initial-scale="1." maximum-scale="1,user-scalable=no”"/>

通常在做响应式布局的时候,以及大屏的时候很常用的,从而实现在不通分辨率下,实现不同的展示效果

/* 超过1920分辨率后显示多列 */
@media screen and (min-width:1920px) 
  .car_box.el-card 
    min-width: 450px !important;
    width: 450px !important;
  

1.7 elementui样式修改的几种方式:

笔者目前技术栈是vue,在修改elementui的样式真的是苦不堪言,style使用css的预处理器(less, sass, scss)的写法如下

// 第一种/deep/
/deep/ .test 
 ***


// 第二种::v-deep
::v-deep .test
 ***

在一个有时候会遇到修改elementuitable的全部样式,下面就来一一对应的去修改下的:

① 修改表格头部背景:

::v-deep .el-table th
    background: orange;
  

② 修改表格行背景:

::v-deep .el-table tr
   background: #eee;
  

③ 修改斑马线表格的背景:

::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td 
    background: #ccc;
  

④ 修改行内线的颜色:

::v-deep .el-table td,.building-top .el-table th.is-leaf 
    border-bottom:  2px solid #eee;
  

⑤ 修改表格最底部边框颜色和高度:

::v-deep .el-table::before
   border-bottom:  1px solid #ccc;
    height: 3px
  

⑥ 修改表头字体颜色:

::v-deep .el-table thead 
    color: #ccc;
    font-weight: 700;
  

⑦ 修改表格内容字体颜色和字体大小:

::v-deep .el-table
    color: #6B91CE;
    font-size: 14px;
  

⑧ 修改表格无数据的时候背景,字体颜色

::v-deep .el-table__empty-block
    background: #ccc;
  
::v-deep .el-table__empty-text
  color: #fff

⑨ 修改表格鼠标悬浮hover背景色

::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td 
    background-color: pink;

知识点的分享就到这里,小编也给学习前端的同学准备丰富的学习资源,视频,项目,源码等网盘资料,2023期待和更多的朋友一起进步!

以上是关于前端编程 css 我想知道在这里overflow的作用是啥的主要内容,如果未能解决你的问题,请参考以下文章

前端工作中常用 CSS 知识点整理

web前端练习32----Css,盒子模型,display,visibility,overflow,单位em

web前端练习32----Css,盒子模型,display,visibility,overflow,单位em

前端开发常用css样式

前端开发常用css样式

前端开发常用css样式