1 常用

1.1 清除浮动

celar清楚浮动,可以作用用内部孙子元素,不仅只有子元素

  1. <style>
  2. .box{
  3. background-color: red;
  4. /* overflow: hidden; */
  5. }
  6. .box::after{
  7. display: table;
  8. clear: both;
  9. content: '';
  10. }
  11. .item1{
  12. background-color: green;
  13. min-height: 3px;
  14. }
  15. .item1 p {
  16. margin: 0;
  17. background-color: yellow;
  18. float: left;
  19. height: 30px;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="box">
  25. <div class="item1">
  26. <p>fefefefefefefeeeeeee</p>
  27. </div>
  28. </div>
  29. </body>

image.png

1.2 transform适用于:所有块级元素及某些内联元素

1.3 去除inline-block元素间间距的N种方法

image.png

1.4 解决chrome 浏览器表单自动填充默认样式 - autofill

image.png

1.5 让浮动元素高度等于父元素高度

image.png

1.6 伪元素实现实心or空心三角形

image.png

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style type="text/css">
  7. .tri_top, .tri_right, .tri_bottom, .tri_left{
  8. width: 150px;
  9. height: 100px;
  10. background: #CCCCCC;
  11. border-radius: 8px;
  12. margin: 50px 50px;
  13. position: relative;
  14. float: left;
  15. }
  16. .tri_top:before{
  17. content: "";
  18. width: 0px;
  19. height: 0px;
  20. border-left: 10px solid transparent;
  21. border-right: 10px solid transparent;
  22. border-bottom: 10px solid #CCCCCC;
  23. position: absolute;
  24. top: -10px;
  25. left: 65px;
  26. }
  27. .tri_right:before{
  28. content: "";
  29. width: 0px;
  30. height: 0px;
  31. border-top: 10px solid transparent;
  32. border-bottom: 10px solid transparent;
  33. border-left: 10px solid #CCCCCC;
  34. position: absolute;
  35. top: 40px;
  36. left: 150px;
  37. }
  38. .tri_bottom:before{
  39. content: "";
  40. width: 0px;
  41. height: 0px;
  42. border-top: 10px solid #CCCCCC;
  43. border-left: 10px solid transparent;
  44. border-right: 10px solid transparent;
  45. position: absolute;
  46. top: 100px;
  47. left: 70px;
  48. }
  49. .tri_left:before{
  50. content: "";
  51. width: 0px;
  52. height: 0px;
  53. border-top: 10px solid transparent;
  54. border-bottom: 10px solid transparent;
  55. border-right: 10px solid #CCCCCC;
  56. position: absolute;
  57. top: 40px;
  58. left: -10px;
  59. }
  60. </style>
  61. </head>
  62. <body>
  63. <div class="tri_top"></div> <!--三角形在上边-->
  64. <div class="tri_right"></div> <!--三角形在右边-->
  65. <div class="tri_bottom"></div> <!--三角形在底边-->
  66. <div class="tri_left"></div> <!--三角形在左边-->
  67. </body>
  68. </html>

1.7 多行文本居中

flex / table cell

  1. .flex-center-vertically {
  2. display: flex;
  3. justify-content: center;
  4. flex-direction: column;
  5. height: 400px;
  6. }
  7. //或
  8. .center-table {
  9. display: table;
  10. height: 250px;
  11. background: white;
  12. width: 240px;
  13. margin: 20px;
  14. }
  15. .center-table p {
  16. display: table-cell;
  17. margin: 0;
  18. background: black;
  19. color: white;
  20. padding: 20px;
  21. border: 10px solid white;
  22. vertical-align: middle;
  23. }

1.9 指定文字行数

纯 CSS 实现多行文字截断 #12
一行

  1. overflow:hidden;//超出一行文字自动隐藏
  2. text-overflow:ellipsis;//文字隐藏后添加省略号
  3. white-space:nowrap;//强制不换行

三行

  1. display: -webkit-box;
  2. overflow: hidden;
  3. text-overflow: ellipsis;
  4. word-wrap: break-word;
  5. white-space: normal !important;
  6. -webkit-line-clamp: 3;
  7. -webkit-box-orient: vertical;

1.10 布局-内容不够,footer总在浏览器底部

八种方法实现CSS页面底部固定

1.11 font简写属性不生效

image.png

image.png

1.12 a标签内部子元素点击触发跳转

https://segmentfault.com/a/1190000016269417
image.png

1.13 scroll-snap css原生滑动吸附

image.png

1.14 margin/padding设置为百分比是基于父元素宽度的

但是不知道这有什么用,于是看了看大佬的分析:巧用margin/padding的百分比值实现高度自适应(多用于占位,避免闪烁)

2 冷门

大部分来自极客时间-重学前端

2.1 @import

不建议使用
image.png
image.png
image.png

2.2 字体@font-face

指定一个用于显示文本的自定义字体;字体能从远程服务器或者用户本地安装的字体加载. 如果提供了local()函数,从用户本地查找指定的字体名称,并且找到了一个匹配项, 本地字体就会被使用. 否则, 字体就会使用url()函数下载的资源

  1. @font-face {
  2. font-family: MyHelvetica;
  3. src: local("Helvetica Neue Bold"),
  4. local("HelveticaNeue-Bold"),
  5. url(MgOpenModernaBold.ttf);
  6. font-weight: bold;
  7. }

2.2.1 字体问题

image.png

2.2.2 某个项目使用的字体—NotoSans-Regular

image.png

  1. @font-face{
  2. font-family:'ns-r';
  3. src:url('//css.yuyue.com/buyer/home3/image/fonts/eot/NotoSans-Regular.eot');
  4. src:url('//css.yuyue.com/buyer/home3/image/fonts/eot/NotoSans-Regular.eot?#iefix') format('embedded-opentype'),
  5. url('//css.yuyue.com/buyer/home3/image/fonts/woff/NotoSans-Regular.woff') format('woff'),
  6. url('//css.yuyue.com/buyer/home3/image/fonts/ttf/NotoSans-Regular.ttf') format('truetype'),
  7. url('//css.yuyue.com/buyer/home3/image/fonts/svg/NotoSans-Regular.svg#ns-r') format('svg');
  8. font-weight:normal;
  9. font-style:normal
  10. }

image.png

image.png
image.png
使用
image.png
把字体文件block掉,对比效果
image.png
image.png

2.2.3 开源字体

https://fonts.google.com/

2.2.4 字体闪现

image.png

2.2.5 默认字体

如果不设置,使用系统默认字体,各系统不一样,依macos-catlina为例
image.png
如何优雅的选择字体(font-family) - SegmentFault 思否

2.3 重置浏览器默认样式

张鑫旭反对使用
京东首页重置样式

  1. // reset.css
  2. * {
  3. margin: 0;
  4. padding: 0
  5. }
  6. em,i {
  7. font-style: normal
  8. }
  9. li {
  10. list-style: none
  11. }
  12. img {
  13. border: 0;
  14. vertical-align: middle
  15. }
  16. button {
  17. cursor: pointer
  18. }
  19. a {
  20. color: #666;
  21. text-decoration: none
  22. }
  23. a:hover {
  24. color: #c81623
  25. }
  26. button,input {
  27. font-family: Microsoft YaHei,Heiti SC,tahoma,arial,Hiragino Sans GB,"\5B8B\4F53",sans-serif
  28. }
  29. body {
  30. -webkit-font-smoothing: antialiased;
  31. background-color: #fff;
  32. font: 12px/1.5 Microsoft YaHei,Heiti SC,tahoma,arial,Hiragino Sans GB,"\5B8B\4F53",sans-serif;
  33. color: #666
  34. }
  35. .hide,.none {
  36. display: none
  37. }
  38. .clearfix:after {
  39. visibility: hidden;
  40. clear: both;
  41. display: block;
  42. content: ".";
  43. height: 0
  44. }
  45. .clearfix {
  46. *zoom:1}

2.4 CSS 函数

按照功能,分成以下 5 个类别(可能并不完全准确):

1. 图片

  • filter
    blur()
    brightness()
    contrast()
    drop-shadow()
    grayscale()
    hue_rotate()
    invert()
    opacity()
    saturate()
    sepia()
    cross-fade()
    element()
    image-set()
    imagefunction()

2. 图形绘制
conic-gradient()
linear-gradient()
radial-gradient()
repeating-linear-gradient()
repeating-radial-gradient()
shape()

3. 布局
calc()
clamp()
fit-content()
max()
min()
minmax()
* repeat()

4. 变形/动画
transform
matrix()
matrix3d()
perspective()
rotate()
rotate3d()
rotateX()
rotateY()
rotateZ()
scale()
scale3d()
scaleX()
scaleY()
scaleZ()
skew()
skewX()
skewY()
translate()
translate3d()
translateX()
translateY()
translateZ()

5. 环境与元素
var()
env()
* attr()

2.5 命名空间namespace

svg 和 HTML 中都有 a 元素,我们若要想区分选择 svg 中的 a 和 HTML 中的 a,就必须用带命名空间的类型选择器。
image.png

2.6 鼠标事件pointer-events:none

**pointer-events** CSS 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target
input等设置为disaled后,就不出触发鼠标事件,比如click,mouseove等。
某次项目需要在不符合条件(disabled)点击按钮出现提示,就需要解决该问题
image.png
有多种解决方式,设置改css后,可以在父级元素触发事件,从而解决问题
参考:

2.7 父元素设置 opacity 影响子元素解决办法

父元素设置opacity后,子元素也受到影响了

image.png

解决办法:为父元素设置css3属性 background: rgba(0,0,0,0.3)。代替opacity。
image.png

2.8 css 变量var

tailwindcss中常见
tailwind css