前端学习<三>CSS进阶——05-CSS进阶的知识 汇总

隐藏盒子的几种方式

隐藏盒子,有以下几种方式:

(1)方式一:

 overflow:hidden;   //隐藏盒子超出的部分

(2)方式二

 display: none;    隐藏盒子,而且不占位置(用的最多)

比如,点击X,关闭京东首页上方的广告栏。

(3)方式三:

 visibility: hidden;   //隐藏盒子,占位置。
 visibility: visible;   //让盒子重新显示
 ​

(4)方式四:

 opacity: 0;       //设置盒子的透明度(不建议,因为内容也会半透明),占位置

(4)方式五:

 Position/top/left/...-999px   //把盒子移得远远的,占位置。

(5)方式六:

 margin-left: 1000px;

设置盒子的半透明

方式一:opacity: 0.4。优点是方便。缺点是:里面的内容也会半透明。

方式二:css3的技术来解决半透明。如下:

  • background: rgba(0,0,0,0.3);

  • background: rgba(0,0,0,.3);

备注:a指的是alpha透明度。

给标签的形状设置为圆角矩形

 border-radius: 50%;
 border-radius: 10px 0 0 10px;

行高的问题:儿子把父亲撑开

比如对于下面这样的标签:

     <div>
         <a href=""></a>
     </div>
 ​

前置条件:如果我们给父亲div的行高设为31px,然后给儿子a的行高也设置为31

结果:当我们给儿子a设置了字体属性之后,会发现,父亲被撑高为32px了。因为font字体自身会比较大,多撑出了一个像素。

解决办法:行内元素尽量不要设置font属性。对于行内元素而言,如果它和父亲都设置了行高,就不要去给自己设置font属性了。要么就,不要同时设置行高。

背景图不能撑开盒子

高和行高都可以城开盒子,但背景图不能撑开盒子。

JS

超链接<a>的href跳转

一个空白的超链接如下:

 <a href=""></a>

当点击超链接时,由于 href 的属性值的不同,可以产生很多种情况:

     href=""                    //刷新页面
 ​
     href="#"                   //跳转到当前页面的顶部(不会刷新)
 ​
     href="javascript:void(0)"  // 什么都不做
 ​
     href="javascript:;"        // 什么都不做
 ​

---------------------

让flex盒子中的子元素们,居中

flex布局常用的三行代码:

     display: flex;
     justify-content: center; // 子元素在横轴的对齐方式 (左右居中)
     align-items: center;  // 子元素在竖轴的对齐方式(上下居中)

让文字只显示一行,超出显示省略号

     overflow: hidden;
     white-space: nowrap;
     text-overflow: ellipsis;
 ​

让文字最多只显示两行,超出后显示省略号

     display: -webkit-box;
     -webkit-box-orient: vertical;
     -webkit-line-clamp: 2;
     overflow: hidden;
     text-overflow: ellipsis;

上面的代码中,我们把 -webkit-line-clamp的值设为1,也能达到“让文字只显示一行,超出显示省略号”的效果。

参考链接:css 实现div内显示两行或三行,超出部分用省略号显示_css 两行 省略-CSDN博客

让文字最多只显示三行,超过后显示省略号

如果当前元素处于flex布局等复杂的场景中,那么,样式可能比较难调,用上面两种写法未必能达到预期效果。此时可以试试下面这种写法(多加了一行 white-space: normal)。

     display: -webkit-box;
     -webkit-box-orient: vertical;
     -webkit-line-clamp: 3;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: normal;

问题描述:文本内容里自带了换行,但是在前端没有展示出来

解决办法:增加如下属性即可。

 white-space: pre-wrap;

或者:

 white-space: pre-line;

2019-11-12-CSS的逗号和空格

CSS的逗号一般写在()里。不同属性值之间,用的是空格,不是逗号。比如:

     transform: translate(-50%, -50%);  /* 这种写逗号 */
     transform: translate(-50%, -50%) scale(0.5);   /* 不同属性值之间,用的是空格 */
 ​
     background-size: 100% 100%;  /* 这里是空格,不是逗号 */

2019-11-01

人民币价格中的羊角符号,有半角和全角之分:

  • ¥半角

  • ¥全角

可以看出,半角的宽度更小。考虑到容器的空间一般比较紧张,所以推荐使用半角

2019-11-19-鼠标悬停时,弹出提示文字

参考链接:css实现鼠标悬浮后的提示效果

2019-11-27-图片的宽度固定,高度自适应

这个场景下,别用background。直接放img元素就好了,将图片的高度设置为auto

2020-03-26-通过CSS扩大点击热区

 .button {
     position: relative;
     /* [其余样式] */
 }
 ​
 .button::before {
     content: '';
     position: absolute;
     top: -10px;
     right: -10px;
     bottom: -10px;
     left: -10px;
 }

注意,button 里面不要写 overflow: hidden 属性,否则扩大的热区无效。

参考链接:CSS:扩大可点击区域 - 简书

2020-10-09-上下滚动,不显示滚动条

 .sku_list {
     margin-left: 25rpx;
     display: flex;
     flex-wrap: wrap;
 ​
     height: 617rpx;
     overflow: hidden;
     overflow-y: scroll;
 ​
     /* 去掉滚动条 */
     &::-webkit-scrollbar {
         display: none;
     }
 }

注意,去掉滚动条的那行代码里,建议用display: none;,不要用width: 0;。因为,当你需要设置横向滚动的效果时,display: none;这个属性的效果更好,不会改变容器的size;width: 0;可能会改变容器的size。

参考链接:

2021-05-06-设置页面的宽高,撑满屏幕

一般来说,我们在开发一个页面的时候,默认是希望这个页面的宽高能够撑满屏幕的。代码可以这样写:

 .app {
     width: 100vw;
     min-height: 100vh;
 }
 ​

2021-09-13-JS中插入CSS

代码举例:

 new_element = document.createElement("style");
 new_element.innerHTML =(".tucao-content p{font-size:18px;}");
 document.body.appendChild(new_element);

参考链接:

---------------------

常见问题

你是如何理解 HTML 语义化的?

语义化:指对文本内容的结构化(内容语义化),选择合乎语义的标签(代码语义化)。

举例:段落用 p,边栏用 aside,主要内容用 main 标签。

好处:

  • 便于开发者阅读和维护

  • 有利于SEO:让浏览器的爬虫和辅助技术更好的解析,

语义化标签介绍

在HTML5出来之前,我们习惯于用div来表示页面的章节或者不同模块,但是div本身是没有语义的。但是现在,HTML5中加入了一些语义化标签,来更清晰的表达文档结构。

20180322_1120.jpg

参考链接:

meta viewport 是做什么用的,怎么写?

     <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

控制页面在移动端不要缩小显示。

canvas 元素是干什么的?

看 MDN 的 canvas 入门手册

说一下CSS盒模型

可以参考本人的另外一篇文章:《02-CSS基础/06-CSS盒模型详解》。

css reset 和 Normalize.css 有什么区别

此题考英文。

二者都是用来统一浏览器的默认样式:

  • reset:重置。相对「暴力」,不管你有没有用,统统重置成一样的效果,且影响的范围很大,讲求跨浏览器的一致性。(一刀切)

  • Normalize.css :标准化。相对「平和」,注重通用的方案,重置掉该重置的样式,保留有用的 user agent 样式,同时进行一些 bug 的修复,这点是 reset 所缺乏的。(去伪存真)

参考链接:

选择器的优先级如何确定

  • 选择器越具体,优先级越高。 #xxx 大于 .yyy

  • 同样优先级,写在后面的覆盖前面的。

  • color: red !important; 优先级最高。

BFC 是什么

overflow:hidden :取消父子 margin 合并。 (另一种推荐做法:padding-top: 0.1px;

如何清除浮动

(1)overflow: hidden

(2).clearfix 清除浮动写在爸爸身上

     .clearfix::after {
         content: '';
         display: block;
         clear: both;
     }
 ​
     /* 兼容 IE */
     .clearfix {
         zoom: 1;
     }

伪类和伪元素的区别是什么?

概念上的区别:

  • 伪类表示一种状态

  • 伪元素是真的有元素。比如 ::after 是真的有元素,可以在页面上显示内容。

使用上的区别:

  • 伪类:使用单冒号

  • 伪元素:使用双冒号

参考链接

Bootstrap 中文文档:表格 · Bootstrap

  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被瞧不起的神

谢谢啦,感谢支持|一起努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值