分类: css

  • html5中 img标签的srcset属性有什么作用以及如何使用

    srcset属性在img标签中的作用主要是为了实现响应式图片,使得在不同的设备或者不同的分辨率下,都能够展示适应的图片效果。

    srcset属性允许你为一张图片定义多个源,这样浏览器就可以根据当前设备的特性(例如视口宽度、设备像素比等)来选择最合适的图片进行渲染。

    srcset属性的使用方法如下:

    <img srcset="img-320w.jpg 320w,
                 img-480w.jpg 480w,
                 img-800w.jpg 800w"
         sizes="(max-width: 320px) 280px,
                (max-width: 480px) 440px,
                800px"
         src="img-800w.jpg" alt="responsive image">
    

    在上面的例子中,srcset定义了三个不同的图片源,320w, 480w, 800w分别代表这三张图片的宽度。sizes属性定义了在不同的视口宽度下,图片所应占据的展示空间的宽度。

    如果浏览器不支持srcset属性,那么就会回退到src属性指定的图片源。

    在使用srcset时,需要确保你提供的每一个图片源,都要有相应的尺寸描述符(例如上面例子中的320w),这样浏览器才能正确的选择最合适的图片源。

  • css伪类选择器.class:last-of-type为什么不起作用

    一:前言

    事情是这样的,公司论坛要改版的时候,发现一个问题.class:last-of-type不起作用,.class:last-child也不起作用,html就像下面这样:

    <div class="list">
     <div class="top">置顶帖子</div>
     <div class="top">置顶帖子</div>
     <div class="top">置顶帖子</div>
     <div>普通帖子</div>
     <div>普通帖子</div>
     <div>普通帖子</div>
    </div>

    我是想在顶置的帖子的最后一个想加下边框,css如下

    .top:last-of-type{
      border-bottom:1px solid #000;
    }

    结果这样是没效果的,网上一顿搜索终于找到了原因, 原因:伪类不支持class只支持html标签元素

    解决方法一

    改变html结构,使用html标签元素span:last-of-type

    <div class="list">
     <span>置顶帖子</span>
     <span>置顶帖子</span>
     <span>置顶帖子</span>
     <div>普通帖子</div>
     <div>普通帖子</div>
     <div>普通帖子</div>
    </div>
    span{display:block;}
    span:last-of-type{
      border-bottom:1px solid #000;
    }

    解决办法二

    js解决办法,给最后一个.top元素添加额外的类,给这个类添加想要的样式

    $('.top').last().addClass('last');
    .last{
    border-bottom: 1px solid #000;
    }
  • tailwind ui

    Getting set up

    Requirements

    All of the components in Tailwind UI are designed for Tailwind CSS >= v2.0. To make sure that you are on the latest version of Tailwind, update via npm:

    tailwind ui中所有的组件被设计tailwind css >=v2.0。确保你使用最新版本的tailwind,通过npm更新:

    npm install tailwindcss@latest

    If you are previously coming from Tailwind UI for Tailwind CSS v1, check out our guide for getting updated to Tailwind CSS v2.0.

    如果你之前来自tailwind ui 为tailwind css v1 ,查看我们的指南设置更新到tailwind css v2.0。

    All of the examples in Tailwind UI rely on the default Tailwind CSS v2.0 configuration, but some rely on additional first-party plugins like @tailwindcss/forms@tailwindcss/typography, and @tailwindcss/aspect-ratio.

    在tailwind ui中所有的示例默认依赖配置tailwind css v2.0,但一些依赖于额外的第一插件 @tailwindcss/forms, @tailwindcss/typography, 和 @tailwindcss/aspect-ratio.

    When an example requires any plugins or configuration changes, it will be noted in a comment at the top of the example.

    当一个案例需要一些插件或者配置变化,它将在示例顶部的注释中注明。

    If you’re new to Tailwind CSS, you’ll want to read the Tailwind CSS documentation as well to get the most out of Tailwind UI.

    如果你是tailwind css的新手,你想要阅读tailwind css 文档已充分利用tailwind ui。

    Optional: Add the Inter font family

    We’ve used Inter font family for all of the Tailwind UI examples because it’s a beautiful font for UI design and is completely open-source and free. Using a custom font is nice because it allows us to make the components look the same on all browsers and operating systems.

    我们使用 Inter 字体为所有的tailwind ui 示例 因为它是一个漂亮的字体为ui设计并且完全开源和自由。使用自定义字体很好因为它允许我们使组件在所有浏览器和操作系统看起来一样。

    You can use any font you want in your own project of course, but if you’d like to use Inter, the easiest way is to first add it via the CDN:

    在你的项目资源中你可以使用你想要的任意字体,但是如果你喜欢使用 Inter, 最简单的方式是通过cdn添加它:

    Then add “Inter var” to your “sans” font family in your Tailwind config:

    然后在tailwind配置中添加 “Inter var “到你的 “sans”字体

    // tailwind.config.js
    const defaultTheme = require(‘tailwindcss/defaultTheme’)

    module.exports = {
    theme: {
    extend: {
    fontFamily: {
    sans: [‘Inter var’, …defaultTheme.fontFamily.sans],
    },
    },
    },
    // …
    }

  • flex左右分栏

    传统方式

    .father{
      position: relative;
      padding-left: 40px;
    }
    .first-son{
      position:absolute;
      left: 0px;
      top: 0px;
    }
    .second-son{
    
    }

    flex设置如下效果

    父级css属性

    .father{
      display: flex;
    }

    父级css属性

    .first-son{<br> flex-shrink: 0;<br> }

  • 简易版瀑布流

    简易版的原理

    取出data下的一条box数据。判断四个li容器谁最短,把刚取出的数据放进去,以此类推。

    <div class="content">
      <ul>
        <li><li>
        <li><li>
        <li><li>
        <li><li>
      </ul>
    </div>
    <div class="data hide">
      <div class="box"><img src="http://placehold.it/250x200/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x300/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x400/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x200/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x500/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x200/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x600/f88/fff></div>
      <div class="box"><img src="http://placehold.it/250x200/f88/fff></div>
    </div>
    
    

    在线查看

  • css清除浮动

    
    <ul id="demo1" class="nostyle demo clearfix"> 
     <li>1</li>
     <li>1</li>
     <li>1</li>
    </ul>
    
    

    
    // Css Code
    /*简洁版*/
    .clearfix:before, .clearfix:after {
    	content:"";
    	display:table;
    }
    .clearfix:after{
    	clear:both;
    	overflow:hidden;
    }
    .clearfix{
        zoom:1;
    }
    
    
    
    /* 经典版 */
    .clearfix:after {
        visibility: hidden;
        display: block;
        font-size: 0;
        content: " ";
        clear: both;
        height: 0;
    }
    * html .clearfix             { zoom: 1; } /* IE6 */
    *:first-child+html .clearfix { zoom: 1; } /* IE7 */
    
    
    
    /* 简单粗暴版  overflow:auto 或者  overflow:hidden */
    .clearfix{
      overflow:hidden; *zoom:1;
    }
    
    
  • sass入门

    一,sass的安装

    二,sass声明变量

    
    $width:300px;
    

    三,普通变量与默认变量
    1,普通变量

    
    //scss文件
    $width:300px;
    div{width: $width;}
    
    
    
    //编译后的css文件
    div{width: 300px;}
    
    

    2,默认变量 !default;

    
    //scss文件
    $width:500px;
    $width:300px !default;
    div{width: $width;}
    
    
    
    //编译后的css文件
    div{width: 500px;}
    
    

    四,变量的调用

    
    //定义变量
    $brand-primary:darken(#428bca,6.5%) !default;
    $btn-primary-color:#fff !default;
    $btn-primary-bg:$brand-primary !default;
    $btn-primary-border:darken($brand-primary,5%) !default;
    //按钮的样式
    .btn-primary{
    color             :$btn-primary-color;
    background-color  :$btn-primary-bg;
    border            :1px solid $btn-primary-border;
    }
    
    
    
    //编译后的css文件
    .btn-primary{
    color              : #FFF;
    background-color   : #337ab7
    border             : 1px solid #2e6da4;
    }
    
    
    

    五,局部变量和全局变量

    
    $color:orange !default;   //这里设置全部变量
    .block{
      color:$color;           //调用全部变量
    }
    .em{
      $color:red;             //设置局部变量
      a{ color:$color;}       //调用局部变量
    }
    

    六,嵌套

    1,选择器嵌套
    2,属性嵌套,例如border,padding,margin,font等中间有-的属性都可以使用属性嵌套。
    3,伪类嵌套,&:before; &:after;

    七,混合宏
    声明混合宏:@mixin Name{}
    调用混合宏:@include Name;
    混合宏传参(三种):1,传一个不带值得参数 2,传一个带值的参数 3,传多个参数