作者:Matt Maribojoc
译者:前端小智
来源:stackabuse

vue3 源码实战出来啦:在面试中,害怕被问到 Vue源码,或者想通过自己对Vue 源码的来秀一下面试官的,可以了解一下。

修改 placeholder 样式,多行文本溢出,隐藏滚动条,修改光标颜色,水平和垂直居中。这些熟悉的场景啊! 前端开发者几乎每天都会和它们打交道,这里有20个CSS技巧,让我们一起来看看吧。

1. 解决 img 5px 间距的问题

你是否经常遇到图片底部多出5px间距的问题?不用急,这里有4种方法可以解决。

方案1:设置父元素字体大小为 0

关键代码:

.img-container{font-size: 0;
}

事例地址:https://codepen.io/qianlong/pen/VwrzoyE

方案2:将 img 元素设置为 display: block

关键代码:

img{display: block;
}

事例地址:https://codepen.io/qianlong/pen/eYeGONM

方案3:将 img 元素设置为 vertical-align: bottom

关键代码:

img{vertical-align: bottom;
}

事例地址:https://codepen.io/qianlong/pen/jOaGNWw

解决方案4:给父元素设置 line-height: 5px

关键代码:

.img-container{line-height: 5px;
}

事例地址:https://codepen.io/qianlong/pen/PoOJYzN

2. 元素的高度与 window 的高度相同

如何使元素与窗口一样高? 答案使用 height: 100vh;

事例地址:https://codepen.io/qianlong/pen/xxPXKXe

3. 修改 input placeholder 样式

关键代码:

.placehoder-custom::-webkit-input-placeholder {color: #babbc1;font-size: 12px;
}

事例地址:https://codepen.io/qianlong/pen/JjOrPOq

4. 使用 :not 选择器

除了最后一个元素外,所有元素都需要一些样式,使用 not 选择器非常容易做到。

如下图所示:最后一个元素没有底边。

关键代码

li:not(:last-child) {border-bottom: 1px solid #ebedf0;
}

事例地址:https://codepen.io/qianlong/pen/QWOqLQO

5. 使用 flex 布局将一个元素智能地固定在底部

当内容不够时,按钮应该在页面的底部。当有足够的内容时,按钮应该跟随内容。当你遇到类似的问题时,使用 flex 来实现智能的布局。

事例地址:https://codepen.io/qianlong/pen/ZEaXzxM

6. 使用 caret-color 来修改光标的颜色

可以使用 caret-color 来修改光标的颜色,如下所示:

caret-color: #ffd476;

事例地址:https://codepen.io/qianlong/pen/YzErKvy

7. 删除 type="number" 末尾的箭头

默认情况下,在type="number"的末尾会出现一个小箭头,但有时我们需要将其删除。我们应该怎么做呢?

关键代码:

.no-arrow::-webkit-outer-spin-button,
.no-arrow::-webkit-inner-spin-button {-webkit-appearance: none;
}

事例地址:https://codepen.io/qianlong/pen/OJOxLrg

8. outline:none 删除输入状态线

当输入框被选中时,它默认会有一条蓝色的状态线,可以通过使用 outline: none 来移除它。

如下图所示:第二个输入框被移除,第一个输入框没有被移除。

事件地址:https://codepen.io/qianlong/pen/YzErzKG

9. 解决iOS滚动条被卡住的问题

在苹果手机上,经常发生元素在滚动时被卡住的情况。这时,可以使用如下的 CSS 来支持弹性滚动。

body,html{-webkit-overflow-scrolling: touch;
}

10. 绘制三角形

.box {padding: 15px;background-color: #f5f6f9;border-radius: 6px;display: flex;align-items: center;justify-content: center;
}.triangle {display: inline-block;margin-right: 10px;/* Base Style */border: solid 10px transparent;
}
/*下*/
.triangle.bottom {border-top-color: #0097a7;
}
/*上*/
.triangle.top {border-bottom-color: #b2ebf2;
}
/*左*/
.triangle.left {border-right-color: #00bcd4;
}
/*右*/
.triangle.right {border-left-color: #009688;
}

事例地址:https://codepen.io/qianlong/pen/rNYGNRe

11. 绘制小箭头、

关键代码:

.box {padding: 15px;background-color: #ffffff;border-radius: 6px;display: flex;align-items: center;justify-content: center;
}.arrow {display: inline-block;margin-right: 10px;width: 0;height: 0;/* Base Style */border: 16px solid;border-color: transparent #cddc39 transparent transparent;position: relative;
}.arrow::after {content: "";position: absolute;right: -20px;top: -16px;border: 16px solid;border-color: transparent #fff transparent transparent;
}
/*下*/
.arrow.bottom {transform: rotate(270deg);
}
/*上*/
.arrow.top {transform: rotate(90deg);
}
/*左*/
.arrow.left {transform: rotate(180deg);
}
/*右*/
.arrow.right {transform: rotate(0deg);
}

事例地址:https://codepen.io/qianlong/pen/ZEaXEEP

12. 图像适配窗口大小

事例地址:https://codepen.io/qianlong/pen/PoOJoPO

13. 隐藏滚动条

第一个滚动条是可见的,第二个滚动条是隐藏的。这意味着容器可以被滚动,但滚动条被隐藏起来,就像它是透明的一样。

关键代码:

.box-hide-scrollbar::-webkit-scrollbar {display: none; /* Chrome Safari */
}

事例地址:https://codepen.io/qianlong/pen/yLPzLeZ

14. 自定义选定的文本样式

关键代码:

.box-custom::selection {color: #ffffff;background-color: #ff4c9f;
}

事例地址:https://codepen.io/qianlong/pen/jOaGOVQ

15. 不允许选择文本

关键代码:

.box p:last-child {user-select: none;
}

事例地址:https://codepen.io/qianlong/pen/rNYGNyB

16. 将一个元素在水平和垂直方向上居中

关键代码:

display: flex;
align-items: center;
justify-content: center;

事例地址:https://codepen.io/qianlong/pen/VwrMwWb

17. 单行文本溢出时显示省略号

关键代码:

  overflow: hidden;white-space: nowrap;text-overflow: ellipsis;max-width: 375px;

事例地址:https://codepen.io/qianlong/pen/vYWeYJJ

18. 多行文本溢出时显示省略号

关键代码:

  overflow: hidden;text-overflow: ellipsis;display: -webkit-box;/* set n lines, including 1 */-webkit-line-clamp: 2;-webkit-box-orient: vertical;

事例地址:https://codepen.io/qianlong/pen/ZEaXEJg

19.使用 “filter:grayscale(1)”,使页面处于灰色模式。

关键代码:

body{filter: grayscale(1);
}

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

原文:https://javascript.plainenglish.io/20-css-tips-and-tricks-to-make-you-a-better-developer-d80ae5c09617

交流

有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

先掌握这 19 个 css 技巧,解决一些疑难杂症相关推荐

  1. html div自动高度,CSS技巧:3种常用方法解决div列高度自适应

    本文向大家介绍一下解决div列高度自适的3种常用方法,分别是利用"clear:both"背景填充,使用脚本控制高度和margin负值父子容器高度继承三种. CSS技巧:解决div列 ...

  2. 你应该知道的25个非常有用的CSS技巧

    在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼容性的问题, CSS网页布局,说难,其实很简单.说它容易,往往有很多问题困扰着新手,在中介绍了非常多的技巧,这些小技巧与知 ...

  3. css label 居中布局_用好这20个css技巧快速提升你的CSS技能

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 随着前端开发越来越关注效率:通过选择器的使用和简化代码来快速加载渲染.像Less.SCSS这样的预处理器在工作的时候,需要 ...

  4. 如何提升你的CSS技能?掌握这20个css技巧即可[完整版]

    前言 随着前端开发越来越关注效率:通过选择器的使用和简化代码来快速加载渲染.像Less.SCSS这样的预处理器在工作的时候,需要绕的路较长,而直接使用css速度会更快.这里涵盖了20个css技巧来帮助 ...

  5. CSS技巧之视觉效果

    CSS技巧(三):视觉效果 源代码可访问仓库地址 视觉效果 1. 单侧投影 1.1 单侧投影 大多数人使用box-shadow的方法是,制定三个长度和一个颜色值. 1 box-shadow: 2px ...

  6. DIV CSS兼容性解决IE6/IE7/FF浏览器的通用方法完美兼容

    在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...

  7. 10 个 GitHub 上超火的 CSS 技巧项目,找到写 CSS 的灵感!

    大家好,我是你们的 超级猫,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 如果 CSS 是女孩子,肯定如上图那样吧 ???? ~ 简介 一般人没事的时候刷刷朋友圈.微博.电视剧.知乎,而有些人是没事的时候 ...

  8. css设置按钮竖直方向居中_前端设计师必须知道的10个重要的CSS技巧

    对于一个初入门的前端设计师,在设计修改网站前端的时候,我们需要编写一些CSS.JS的内容达到界面效果.今天分享10个对于前端设计师来说重要的CSS技巧,这也是我在给许多客户做网站的过程当中总结出来的. ...

  9. 学无止境的CSS(xHTML+CSS技巧教程资源大全)

    本文里面收集一些有关CSS的技巧.教程.工具和观点等,其中一些你也许早就运用的炉火纯青,也可能有的你听都没听说过.不管是新手还是高手,大家都继续学习吧. 一,Web 标准 要玩游戏,就得先了解规则.要 ...

最新文章

  1. centos的网络配置
  2. openssl 模块 安装 centso Ubuntu
  3. [密码学] RSA同模攻击与选择密文攻击
  4. js如何获取html图片,JS/JQuery获取网页或文章或某DIV所有图片
  5. CentOS 7 定时计划任务设置
  6. 手机有一个时钟的标志_手机桌面时钟有这几款就够了
  7. 实验1-5 输出菱形图案 (5 分)
  8. python基础代码大全-python文件及目录操作代码汇总
  9. 实时计算在天猫双十一大屏中的应用
  10. linux 按时间查找文件,linux 文件三种时间 和 find 按时间查找
  11. easyui学习笔记3—在展开行内的增删改操作
  12. informix使用得一些小常识
  13. 一次excel表格操作
  14. 便宜制作服务器,组建私有云:除了购买NAS服务器外试试自己手工打造吧!
  15. 如何在PB数据窗口中设置数据窗口的更新属性
  16. java无法下载jnlp_无法加载jnlp文件
  17. Matlab GUI界面表格中数据导出到excel文件带标题
  18. 四川2008省选·洛谷·奖励关
  19. laravel mysql超时时间_连接到数据库时Laravel连接超时
  20. 学历:开启门户还是束缚枷锁?

热门文章

  1. 真的来了,浏览器端可以直接运行Python了
  2. 移动端APP第一次登录和自动登录流程
  3. 计算机二级《MS Office》考试真题及答案
  4. python听不懂_看日本电影真痛苦,本来就听不懂!还没字幕!6行代码音频转文字...
  5. aspen压缩因子_ASPEN PLUS的物性数据库及其应用.pdf
  6. linux的mysql本地yum安装_Linux Centos 下使用yum 命令安装mysql实现步骤
  7. 如何批量删除多个PDF文档中的一页或多页
  8. idea注意事项和java数据类型
  9. 计算机毕设项目:毕业论文管理系统(二)
  10. 罗克韦尔AB PLC RSLogix5000中的比较指令使用方法介绍