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%;对于小图片也做到了很好的自适应~

  • 相关阅读:
    C++ UNREFERENCED_PARAMETER函数的作用
    Win32 Console Application、Win32 Application、MFC三者之间的联系和区别
    解决CSDN博客插入代码出现的问题
    C++ std::vector指定位置插入
    计算机如何与人沟通(1)
    C++ fstream文件操作
    using namespace std 和 include 的区别
    找不到windows.h源文件
    C++ 字符串转换
    WPF style 换肤
  • 原文地址:https://www.cnblogs.com/kasmine/p/6501311.html
Copyright © 2011-2022 走看看