Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS垂直对齐问题_Html_Css - Fatal编程技术网

Html CSS垂直对齐问题

Html CSS垂直对齐问题,html,css,Html,Css,考虑以下示例:() HTML: 输出为: 为什么黑色的wrappers没有垂直对齐?我怎样才能解决这个问题 图像在红色框中水平居中。我怎样才能使它们垂直居中 如果可能,请不要更改HTML .wrapper { float: left; } 看看这个: 基本上,您可以使用float:left将方框内联,并使用背景图像来代替img标记。因为您使用的是浮动,所以需要在之后清除,以取消对其他元素的浮动效果 我将DIV标记更改为A标记,这样您就可以在孔块上有一个链接并保持简单。但您可以将其保留

考虑以下示例:()

HTML:

输出为:

  • 为什么黑色的
    wrapper
    s没有垂直对齐?我怎样才能解决这个问题
  • 图像在红色框中水平居中。我怎样才能使它们垂直居中

  • 如果可能,请不要更改HTML

    .wrapper {
      float: left;
    }
    

    看看这个:

    基本上,您可以使用
    float:left
    将方框内联,并使用背景图像来代替img标记。因为您使用的是浮动,所以需要在之后清除,以取消对其他元素的浮动效果

    我将DIV标记更改为A标记,这样您就可以在孔块上有一个链接并保持简单。但您可以将其保留为DIV标记,并在其内部放置一个a块(或使用JavaScript)

    请看以下内容:

    基本上,您可以使用
    float:left
    将方框内联,并使用背景图像来代替img标记。因为您使用的是浮动,所以需要在之后清除,以取消对其他元素的浮动效果


    我将DIV标记更改为A标记,这样您就可以在孔块上有一个链接并保持简单。但是您可以将其保留为DIV标记,并在其内部放置一个a块(或使用JavaScript)

    注意,它是对齐图像的基础。这与
    垂直对齐有关
    ;如果在
    .wrapper
    上使用
    垂直对齐
    的值,而不是
    基线
    ,如
    顶部
    中部
    底部
    ,它将修复该值。(只有在
    div
    中放入一些文本,它们之间的差异才会明显。)

    然后,您需要将图像置于其80x80点的中心。您可以使用
    a
    上的
    display:table cell
    vertical align:middle
    (并添加
    行高:0
    以解决更多问题)。然后,您可以进一步在
    a
    标记、
    .wrapper
    中混合这些样式组,甚至在不需要的情况下丢弃
    .wrapper
    (如果需要的话,只需要添加文本)

    结果,没有比我在这里提到的更多的调整:


    这将适用于所有体面的浏览器,甚至在IE8/9上,但在IE6/7上不起作用。在IE6/7中解决此问题的一种技术是:在
    A
    上,将
    显示设置为
    ,并将
    行高度从
    0
    更改为
    78px
    (我不完全清楚为什么
    80px
    会使它向下移动一个像素,但确实如此;如果我想得足够久,我可能会找出原因),并将
    垂直对齐:中间
    移动到
    img
    子项。最终结果:

    观察它是对齐图像的基础。这与
    垂直对齐有关;如果在
    上为
    垂直对齐
    使用值,则包装器
    而不是
    基线
    ,如
    顶部
    middle
    bottom
    ,它将修复它。(只有在
    div
    中放入一些文本,它们之间的差异才会明显。)

    然后,您希望将图像置于80x80点的中心位置。您可以使用
    a
    上的
    display:table cell
    vertical align:middle
    (并添加
    行高:0
    ,以解决更多问题)。然后,您可以在
    a
    标记、
    .wrapper
    中进一步混合这些样式组,甚至在不需要的情况下扔掉
    .wrapper
    (只有在需要的情况下,如果您将文本放入其中,才需要)

    结果,没有比我在这里提到的更多的调整:


    这将适用于所有体面的浏览器,甚至适用于IE8/9,但不适用于IE6/7。解决这一问题的一种技术应该适用于IE6/7:在
    A
    上,将
    display
    设置为
    block
    ,并将
    行高从
    0
    更改为
    78px
    (我不完全清楚为什么
    80px
    会使它向下移动一个像素,但确实如此;如果我想得足够久,我可能会找出原因),并将
    垂直对齐:中间
    移动到
    img
    子项。最终结果:

    您可以尝试在
    img
    标记上指定
    垂直对齐
    属性。垂直对齐与线框相关,这意味着您需要将线框设置为与
    a
    标记的高度一样高。因此,这些更改是无效的CSS标记中需要:

    #outer_wrapper {
        overflow: hidden; /* required when you float everything inside it */
    }
    
    .wrapper {
        /* display: inline-block is not required */
        /* text-align: center is not required -- see below */
        float: left; /* float all wrappers left */
    }
    
    a {
        display: block; /* block display required to make width and height behave as expected */
        margin-left: 4px; /* shift the block to make it horizontally centered */
        margin-top: 9px; /* shift the block to make it vertically centered */
        text-align: center; /* center inline content horizontally */
        line-height: 80px; /* line height must be set for next item to work */
    }
    
    img {
        vertical-align: middle; /* presto */
    }
    

    .

    您可以尝试在
    img
    标记上指定
    垂直对齐
    属性。垂直对齐是相对于线框的,这意味着您需要将线框设置为与
    a
    标记的高度一样高。因此,CSS标记中需要进行以下更改:

    #outer_wrapper {
        overflow: hidden; /* required when you float everything inside it */
    }
    
    .wrapper {
        /* display: inline-block is not required */
        /* text-align: center is not required -- see below */
        float: left; /* float all wrappers left */
    }
    
    a {
        display: block; /* block display required to make width and height behave as expected */
        margin-left: 4px; /* shift the block to make it horizontally centered */
        margin-top: 9px; /* shift the block to make it vertically centered */
        text-align: center; /* center inline content horizontally */
        line-height: 80px; /* line height must be set for next item to work */
    }
    
    img {
        vertical-align: middle; /* presto */
    }
    

    .

    您可以查看此信息:

    您可以查看此信息:

    这可能会对您有所帮助


    它帮助了我:)

    也许这会帮助你


    它帮助了我:)

    可能重复的???可能重复的???关于浏览器兼容性的注意:IE6或IE7()不支持CSS表显示。感谢第一部分!关于第二部分:我真的需要它在IE7中工作:)有什么想法吗?关于浏览器兼容性的注意:在IE6或IE7()中不支持CSS表显示。感谢第一部分!关于第二部分:我真的需要它在IE7中工作:)有什么想法吗?“请不要更改HTML,如果可能的话。”-我们如何确保图像只是装饰而不是内容?切换到背景可能不合适,“如果可能”。我同意换成背景可能不合适。但我想给他举个例子,现在他可以决定这是否合适。虽然这不符合要求
    #outer_wrapper {
        overflow: hidden; /* required when you float everything inside it */
    }
    
    .wrapper {
        /* display: inline-block is not required */
        /* text-align: center is not required -- see below */
        float: left; /* float all wrappers left */
    }
    
    a {
        display: block; /* block display required to make width and height behave as expected */
        margin-left: 4px; /* shift the block to make it horizontally centered */
        margin-top: 9px; /* shift the block to make it vertically centered */
        text-align: center; /* center inline content horizontally */
        line-height: 80px; /* line height must be set for next item to work */
    }
    
    img {
        vertical-align: middle; /* presto */
    }