Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
Css “A”的中间垂直对齐;img";在;a「;_Css_Image_Vertical Alignment - Fatal编程技术网

Css “A”的中间垂直对齐;img";在;a「;

Css “A”的中间垂直对齐;img";在;a「;,css,image,vertical-alignment,Css,Image,Vertical Alignment,HTML代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head></head> <body> <div class="lt-0 partner">

HTML代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head></head>
    <body>

        <div class="lt-0 partner">
            <div class="csc-textpic csc-textpic-center csc-textpic-above" >
                <div class="csc-textpic-imagewrap csc-textpic-single-image">
                    <a>
                        <img href="bilder/bild.jpg" />
                    </a>
                </div>
            </div>
        </div>

    </body>
</html>
我的问题是,图像必须居中,但链接必须为全尺寸。 它是打字错误3网站的一部分

提前感谢您的帮助。

首先:代码中几乎没有错误
  • 似乎没有一个元素带有
    ID=“div”
    ,但在所有CSS选择器中都有它作为第一个元素

  • 最后一个应该为
    IMG
    元素设置样式的CSS选择器没有满足要求,因为其中有一个
    DIV
    太多了

  • IMG
    元素没有定义
    href
    属性,而是定义
    src

  • 第二:支持动态维度的无脚本解决方案 我简化了你的HTML,并对CSS做了一些修改,使它在这里更加明显。所有DIV和IMG元素都具有任意大小,因此样式不依赖于它们的任何尺寸

    代码如下:

    HTML 浏览器支持
    display
    我使用的类型在当今大多数浏览器中都受支持,当然,IE中至少需要版本8的浏览器除外。任何老一点的东西都不支持他们。

    我想你的意思是什么

    如果容器的尺寸未确定,则使用:


    如果容器和图像都有未确定的高度,则需要javascript。如果需要帮助,请呼喊。

    您可以使用标记“a”获得此图像的水平对齐:


    但不幸的是,为了获得垂直对齐,您需要使用父div的已知高度手动设置此图像的边距顶部(或者,使用相同的结果,为“a”标记填充顶部)。您可以使用一些jquery插件(只需在google中搜索类似“jquery垂直对齐插件”的内容,就可以使用很多插件)或者编写自己的脚本。

    注意:
    #div.partner div div a img
    可以简化为
    #div.partner div a img
    或更改为
    #div>.partner>div>div>a>img
    。否则,基于你的HTML,我看不出在你的CSS中有多个
    div
    选择器有什么意义。这似乎完全错了。。我没有看到您在css中选择的id为“div”的div:)我们在css中看到的维度是静态的吗?图像尺寸也是静态的,所以你知道它有多大?@Robert Koritnik同意,并且
    #div>.partner>div>div>a>img
    #div.partner div a img
    更快。如果这些尺寸不是静态的呢?您将无法像添加最后一句那样设置
    行高
    。+1。解决方案本身或多或少等同于第一个解决方案。一个元素仍然假定为静态的。但是我想知道,如果使用一个额外的
    SPAN
    元素,并且没有您建议的Javascript,您将如何解决这个问题…@Robert Hmmm,我认为使用
    行高:0
    可以工作,但我错了。奇怪的是,这个把戏是用来在图像上定位徽章的。在这种特殊情况下,图像容器仍然是静态标注的。。。但这似乎仍然是一个很好的把戏,我显然没有花足够的时间去理解,因为我真的不懂这个把戏。@Robert我也用过这个把戏。说清楚一点:我本以为会奏效,但事实并非如此。@NGLN:现在呢?可以删除-1吗?:)
    #div .partner div div{
        height: 140px;
        width: 280px;
        border: 1px solid #000;
    }
    
    #div .partner div div a{
        height: 100%;
        width: 100%;
        display: block;
        vertical-align: middle;
    }
    
    #div .partner div div div a img{
        display: inline;
    }
    
    <!-- dimensions are set inline to make them of different size -->
    <div class="container" style="height: 100px; width: 250px;">
        <a href="#">
            <img src="img111.png" />
        </a>
    </div>
    <div class="container" style="height: 120px; width: 150px;">
        <a href="#">
            <img src="img222.png" />
        </a>
    </div>
    
    .container {
        border: 2px solid #c00;
        display: table;
    }
    .container a {
        border: 2px solid #f90;
        display: table-cell;
        text-align: center;
        vertical-align: middle;
    }
    .container a img {
        border: 2px solid #9cf;
        background: #eee;
        padding: 2px;
    }
    
    .partner div div {
        height: 140px;
        width: 280px;
        border: 1px solid #000;
    }
    .partner div div a {
        height: 100%;
        width: 100%;
        display: block;
        line-height: 140px;
        text-align: center;
    }
    .partner div div a img {
        vertical-align: middle;
    }
    
    .partner div div {
        height: 140px;
        width: 280px;
        border: 1px solid #000;
    }
    .partner div div a {
        height: 100%;
        width: 100%;
        display: block;
        text-align: center;
    }
    .partner div div a img {
        position: relative;
        top: 50%;
        margin-top: -25px; /* = half the image height */
    }
    
    text-align: center;