zoukankan      html  css  js  c++  java
  • CSS技巧 (1) · 结构和布局

     前言

      这一篇主要是总结关于结构和布局的一些技巧,不管什么,一个网页上来,最重要的是先确定他的结构和布局,实现基本的布局之后,我们再进行局部的优化和交互特效。

      这一篇主要讲 关于 自适应内部元素 的内容

    自适应内部元素

      问题缘由:我们都知道元素可以自动适应内容的高度,但是如何实现宽度也如此呢,换句话说,就是元素的宽度又内部元素决定,而不是外部因素决定

      问题实例:比如,我们制作一个卡片,包括图片和图片说明,如下

    <figure>
        <img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQlWQZGiPfKwXnHwbjNKkTAU79_jfAwml-mRvUocJoS91Miomps" alt="">
        <figcaption>这是图片注释,这是图片注释,这是图片注释</figcaption>
    </figure>

    如不设置样式,效果应该是如下(图1)的,但是如果我们想设置figure元素和图片一样宽(图2),并且是水平居中的该如何呢?

    图1      

                图1                         图2

       问题解决:其实解决方案很简单,只需要利用 min-content属性,便可以设置 外部元素自适应内部元素的宽度了,这种方法对于图片的使用特别有用,且常常是应用于图片大小未知的情况下

    figure {
        border:1px dashed;
        max-width: 300px;
        max-width: min-content;
    }
    /* 这里添加退化功能,如果 min-content 不可用的话,会默认设置最大宽度 300px;若可用的话,img的max-width 也就派不上用场了 */
    figure>img {
        max-width: inherit;
    }

    缺点:  IE(包括IE11)暂时不支持这个属性值~

    另外:我们也可以是使用inline-block来使得元素自适应内部元素宽度,但是效果就是和 设置max-content一致

    figure {
        border:1px dashed;
        display:inline-block;
    /*   max-max-content; */
    }

     小结: 有没有发现很方便,我们子啊也不需要说去设置 figure的宽度和max-width,然后再设置img的max-width:100%;对于小图片也做到了很好的自适应~

  • 相关阅读:
    cf B. Sereja and Suffixes
    cf E. Dima and Magic Guitar
    cf D. Dima and Trap Graph
    cf C. Dima and Salad
    最短路径问题(floyd)
    Drainage Ditches(网络流(EK算法))
    图结构练习—BFSDFS—判断可达性(BFS)
    Sorting It All Out(拓扑排序)
    Power Network(最大流(EK算法))
    Labeling Balls(拓扑)
  • 原文地址:https://www.cnblogs.com/kasmine/p/6501311.html
Copyright © 2011-2022 走看看