css 两个宽度不确定的浮动元素 如何水平垂直居中

image.png
左边一个icon,右边是文字,实现水平垂直居中,右边文字长度不确定,如何实现水平垂直居中?(注:ie9不支持flex)

阅读 2.5k
3 个回答
<div>
    <table style="margin:0 auto">
        <tr>
            <td><img src="icon.png"/></td>
            <td>确认删除该日程吗?</td>
        </tr>
    </table>
<div>

ie9。。。
试试用vertical-align:middle吧
还有line-height这个好基友。

新手上路,请多包涵

实现功能

  使用 table-cell + vertical-align+ text-align + inline-block + clear + float,实现浮动子元素的水平垂直居中。

效果图

image.png

解决方案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>两个浮动元素的垂直水平居中</title>
    <style>
        .parentBox{
           background-color:#ccc;
            width:220px;
            height:220px;

            /* 子元素的水平垂直居中:table-cell + vertical-align + text-align */
            display:table-cell;
            vertical-align: middle;
            text-align: center;      
        }
        .parentBox .clearFloatBox{
            border:1px solid red;
            display:inline-block;  /* 不要指定这个div的宽和高 */
           
            /* width:200px; */
            /* height:100px;  */

            clear:both;  /* 删掉也不影响居中效果*/
        }
        /* 浮动元素1 --- 左边图片定宽高  */
        .clearFloatBox img{
            width:20px; 
            height:20px;
            float:left;
        }
          /* 浮动元素2 --- 右边文字不定宽高*/
        .clearFloatBox span{
            float:right;
        }
    </style>
</head>
<body>
    <div class="parentBox">
        <!-- 因为tablecell对浮动元素无效,所以外面包裹一个div,使得tablecell直接在div上操作-->
        <div class="clearFloatBox">   
            <!-- 左浮动img元素 -->
            <img src="../images/error.svg" alt="错误按钮图标">
             <!-- 右浮动span元素 -->
            <span>确定要删除吗?</span>
        </div>
    </div>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏