2

是否可以根据父 div 的宽度使用 css 显示某些内容?我在考虑媒体查询方面的一些事情,但我不希望整个设备宽度只是父 div 的宽度。

我可以用 jQuery see fiddle(将 < 更改为 > 以查看不同的内容)来做到这一点,但想知道是否有办法用 css3 做类似的事情?

        <div id="parent">
            <div id="content">
            <table>
                <tbody>
                    <tr><td><span class="full">BAHRAIN</span><span class="abbrev">BHR</span></td></tr>
                    <tr><td><span class="full">BELGIUM</span><span class="abbrev">BEL</span></td></tr>
                    <tr><td><span class="full">EGYPT</span><span class="abbrev">EGY</span></td></tr>
                    <tr><td><span class="full">LITHUANIA</span><span class="abbrev">LTU</span></td></tr>
                    <tr><td><span class="full">SWEDEN</span><span class="abbrev">SWE</span></td></tr>
                </tbody>
                </table>
            </div>
        </div>

        <script>
        var w = $('#parent').width();
        console.log('width: ', w);
        if (w<200) 
        {
        $("#content").addClass("showsmall");
        }
        </script>

        <style>
        #parent {width: 300px;}
        .abbrev {display:none;}
        .showsmall .abbrev {display:block;}
        .showsmall .full {display:none;}
        </style>
4

2 回答 2

2

.width永远不会接受 IF,因为您width在 css 中设置为200px

如果你想看到它是动态的,你应该:

  • 在 CSS 中替换widthmax-width
  • 添加.resize活动

代码

$(window).resize(function () {
    var w = $('#parent').width();
    console.log('width: ', w);
    if (w < 200) {
        $("#content").addClass("showsmall");
    } else {
        $("#content").removeClass("showsmall");
    }
});

jsFiddle 示例

于 2013-06-23T21:57:39.877 回答
-1

这你想要什么?演示这是仅使用 CSS 的解决方案。

如果您设置width字面,您将无法让浏览器自动调整大小。

我用对象更改了一些标记以使示例更简单:

<div class="parent">
    <div class="child">
        <span class="text">
            This is a normal text.
        </span>
    </div>
    <br />
    <div class="fixed-child">
        <span class="text">
            This is a text very laaaaaaaaaaaaaaaaaaaaaaaaaaaaarge!
        </span>
    </div>
</div>

这是CSS:

.parent > div {
    height: 50px;
    margin-top: .325em;
    border: 1px solid black;
    display: inline-block;
}

如您所见,我设置了height以使示例看起来更好。

做个好人,莱昂纳多

于 2013-06-23T22:03:43.830 回答