首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML5/CSS3制作正方形div,宽度为100%,需要高度等于宽度

HTML5/CSS3制作正方形div,宽度为100%,需要高度等于宽度
EN

Stack Overflow用户
提问于 2013-12-09 13:04:53
回答 5查看 3.2K关注 0票数 2

我正在使用HTML5和CSS3来制作布局。

我需要在页面上的瓷砖,这是一个正方形的div元素。磁贴在引导列中,我需要宽度自动匹配列的宽度,但我发现很难让高度=宽度,因为宽度是一个百分比值: 100%。

HTML:

代码语言:javascript
运行
复制
...
<div class="col-md-2">
    <div class="tile tile-square tile-auto">
        ...
    </div>
</div>
...

CSS:

代码语言:javascript
运行
复制
.tile-square{
    width: 100%;
    height: how to do this?
}

我可以使用jQuery/js解决方案,但我更喜欢使用CSS3来单独解决这个问题。CSS3中有一个"calc()“语句,但我不知道它是否能实现此功能。

EN

回答 5

Stack Overflow用户

发布于 2013-12-09 13:17:33

对于纯CSS2.1,您可以通过设置padding-top: 100%来使框保持1:1的比例(因为垂直填充是根据容器的宽度而不是高度计算的)。您问题的注释提供了一些带有示例的链接。

票数 2
EN

Stack Overflow用户

发布于 2013-12-09 13:29:50

使用jQuery完成

代码语言:javascript
运行
复制
var x = $('.element').width();
$('.element').css(
    {'height': x + 'px'}
);

JSFiddle上的演示

票数 2
EN

Stack Overflow用户

发布于 2013-12-09 13:12:39

我相信你不能只用CSS3来做到这一点。CSS只是简单地设置样式。不过,您可以使用JQuery/JS来实现这一点:

代码语言:javascript
运行
复制
var width = $('div.tile-square').width();
$('div.tile-square').height(width + 'px');

或者,您可以这样做(不是首选):

代码语言:javascript
运行
复制
$('div.tile-square').css('height', $('div.tile-square').css('width'));

JSFiddle:http://jsfiddle.net/7k8pp/3/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20463534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档