css – 指定HTML元素的自然大小

我们来讨论 HTML中的图像.如果我将图像放在没有其他约束的页面上,它将承担其“自然大小”—即图像的文字大小(以像素为单位).如果我指定一个CSS max-width和max-height,那么它将保持其自然的纵横比,但是缩小到适合大小约束.真棒!

我想要一个任意元素的确切行为.也就是说,我想创建一个< div>或其他具有自然大小(我将以像素指定)的其他东西,并在受max-width和max-height影响时保持其纵横比. (积分:如果技术也支持最小宽度和最小高度,则会很酷).

这里有一些我收集的信息:

>对于HTML5图像,您可以使用naturalWidth和naturalHeight属性读取图像的自然大小,前提是完整属性为true.不幸的是,作为MDN points out,这些属性是只读的,并且是特定于图像元素的.
> This approach是辉煌的,但(尽管高度响应最大宽度)宽度不响应最大高度.
>有一点搜索未能找到一个只有CSS的解决方案,这使我觉得可能不存在.我还将接受JavaScript解决方案,但是它们需要对窗口大小和父元素大小的变化是稳健的.

解决方法

这是我的超级笨蛋解决方案:

HTML

<div class="ratioBox">
    <div class="dummy"></div>

     <div class="el">This is the super duper ratio element </div>

</div>

CSS

.ratioBox{
    position: relative;
    overflow: hidden;      /* to hide any content on the .el that might not fit in it */
    width: 75%;            /* percentage width */
    max-width: 225px;
    min-width: 100px;
    max-height: 112.5px;
    min-height: 50px;  
}

.dummy {
    padding-top: 50%;      /* percentage height */
}

.el {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: silver;
}

​

看到它在这里工作:http://jsfiddle.net/joplomacedo/7rAcH/

解释如果你不明白发生了什么,将在一天结束时到来,因为我不幸的是时间不够了. [这是7月28日下午2:54(GMT时间),因为我写这个]

相关文章

前言 最近项目做完,用户需要兼容IE,于是开展了兼容性的调整工作。边调整边想感叹IE真是个沙雕。。特将...
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习。 1、text-indent text-indent 属性规...
前言 政府网站会遇到公祭日的时候,网站整体颜色变灰的情况。今天正好调了一下。在此把解决方案分享给大...
需求 项目里有个消息中心,当有消息的时候,小铃铛图标可以晃两下,提示当前有信息。 实现过程 书写css...
html代码 css代码 效果图
在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个...