问答

请问div内部的img为什么不受div样式的束缚?

作者:admin 2021-05-05 我要评论

我在button按钮中添加了一个图标和文字,index代码如下 button className={styles.buttonstyle} div className={styles.imagewrapper} img src={changeButton}/ ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我在button按钮中添加了一个图标和文字,index代码如下

            <button className={styles.buttonstyle}>
                <div className={styles.imagewrapper}>
                    <img src={changeButton}/>
                </div>
                切换
            </button>

less代码如下:

.buttonstyle{
    color:#84b0d9;
    background-color:#ffffff;
    border-radius:13px;
    width:75px;
    height:25px;
    font-size:14px;
    border:0;
    outline:none;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    cursor: pointer;
    display: flex;
    align-items: center;
}

.buttonstyle:hover{
    color:#1890ff;
}
.imagewrapper{
    width:14px;
    height:12px;
    margin-right:6px;
    display: table-cell;
    vertical-align: middle;
}

我用imagewrapper样式限制了img外层div的大小,但是这层div没能限制住img,图片还是非常大,如下图中文字下部的淡蓝色部分所示
image.png

于是给图片设置宽高,宽和高与imagewrapper宽高一样

            <button className={styles.buttonstyle}>
                <div className={styles.imagewrapper}>
                    <img src={changeButton} style={{width:'14px',height:'12px'}}/>
                </div>
                切换
            </button>

结果div的imagewrapper对应的区域如下图所示,是居中对齐的
image.png

但是img对应的区域却在偏下的位置
image.png

为什么img不在div的区域内呢?图片大小没有超过div,而且设置了div内部元素垂直居中。

虽然调整img的margin可以解决问题,但是我想知道这个问题的原因,请赐教

###

img 是行内替换元素,从排版的角度来看与行内块元素表现一致:其在行内的垂直位置受父元素的 vertical-alignline-height 约束,而且在各浏览器表现不一致,调margin也不能完全兼容。
可以让图片隐形,然后把图片链接作为其父元素的背景,居中contain
或者用字体图标。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问div内部的img为什么不受div样式的

    请问div内部的img为什么不受div样式的

  • react-native 写的模块如何在模块里监

    react-native 写的模块如何在模块里监

  • 如何将一个数字类型的数组进行切割,使

    如何将一个数字类型的数组进行切割,使

  • mybatis-plus的@TableName注解的schema

    mybatis-plus的@TableName注解的schema

腾讯云代理商
海外云服务器