这个博客是基于“Pelican+Markdown+定制的my-gum主题”的。定制的主题将博文正文页面的 右边栏去掉,这导致在Firefox等浏览器中,正文中大的图片会突破正文块的宽度,高度也得不到限制,显示效果非常差。

其原因是:Markdown的图片区块元素![Alt text](/path/to/img.jpg)渲染成HTML元素的结果为 -

<p>
<img src="/path/to/img.jpg" alt="Alt text"></img>
</p>

<p>元素内的元素是行内(inline)元素。主题my-gum使用的CSS框架gumby对img元素是使用max-width: 100%将图片的最大宽度限制为父元素的宽度。但在Firefox中max-width对于行内元素并不会生效(all elements but non-replaced inline elements, table rows, and row groups),所以造成了显示问题。

网络上有人说可以用width: 100%替代之,但width: 100%和max-width: 100%的区别是:width: 100%是将所有指定元素的宽度 拉伸或收缩到和父元素的宽度一致,而max-width: 100%则是如果指定元素的宽度不超过父元素的宽度,则大小不变,如果超过了父元素的宽度,则将宽度收缩为父元素的宽度。如果使用width: 100%,那么我博文中的图片,即使再小,都会被拉伸为正文的宽度,自然是不会好看的。

我的想法是:既然使用CSS不能解决这个问题,那就尝试使用Javascript。当图片加载完毕后,将图片宽度与正文宽度做比较,如果 图片宽度大于正文宽度,则为该图片设置width: 100%。唯一不完美的地方是某些大图片加载完毕之前的宽度很大,比较难看。

代码如下所示:

$(function() {
var entryContentWidth = $('.row').width(); $('.entry-content img').on('load', function(){
if($(this).width() > entryContentWidth) {
$(this).width('100%');
}
});
});

补充一个地址:说的比较简洁:http://segmentfault.com/q/1010000002424935

原文地址:http://www.udpwork.com/item/12188.html

width:100% 和 max-width:100%; 有区别吗【转藏】的更多相关文章

  1. width:100px; min-width:100% 解释:宽度大于100px 就是100% 小于100px 就是100像素

    <div style="width:100px; background-color: aqua; min-width:100%">kkk</div>

  2. jQuery.width()和jQuery.css('width')的区别

    [TOC] 问题描述 使用jQuery修改一个div的宽度时,发现$($0).width('10rem')总是修改成不正确的值,然后使用$($0).css('width', '10rem')时却能正确 ...

  3. Frame size of 257 MB larger than max allowed 100 MB

    ActiveMQ有时会报类似Frame size of 257 MB larger than max allowed 100 MB的错误,意思是单条消息超过了预设的最大值,在配置文件中 <tra ...

  4. 微软BI 之SSIS 系列 - 平面文件格式的区别(Delimited,Fixed width,Ragged Right, Fixed width ...)

    开篇介绍 SSIS 中处理文件,一般在描述输出平面文件格式的时候通常会出现以下几种选项: Delimited - 默认输出列使用逗号分隔,也可以选择其它的诸如 | ,或者 Tab 等. Fixed W ...

  5. 编写高质量代码改善C#程序的157个建议——建议100:静态方法和实例方法没有区别

    建议100:静态方法和实例方法没有区别 静态方法在加载时机和内存使用上和实例方法完全一致.在这里,我们先引出一个概念“类型对象”.比如类型Person,我们都知道new Person() 会产生一个对 ...

  6. LeetCode面试常见100题( TOP 100 Liked Questions)

    LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...

  7. 深入子元素的width与父元素的width关系

    深入理解父元素与子元素的width关系 对于这一部分内容,如果理解准确,可以更容易控制布局,节省不必要的代码,这里将简单研究. 第一部分:父子元素都是内联元素 代码演示如下: <!DOCTYPE ...

  8. 深入理解子元素的width与父元素的width关系

    深入理解父元素与子元素的width关系 对于这一部分内容,如果理解准确,可以更容易控制布局,节省不必要的代码,这里将简单研究. 第一部分:父子元素都是内联元素 代码演示如下: <!DOCTYPE ...

  9. VirtualBox: Effective UID is not root (euid=1000 egid=100 uid=1000 gid=100)

    桌面上运行virtualbox出错: The virtual machine 'xp' has terminated unexpectedly during startup with exit cod ...

  10. width() innerwidth() outerwidth() css('width')

    不多说,用一图足以说明 首先先解释下普通元素和非普通元素, 非普通元素是指window,document这些 元素对象, 普通元素是指除window,document之外的元素,如:div 对于普通的 ...

随机推荐

  1. redis的图形界面管理工具:phpredisadmin

    大部分人都知道redis是一款用在缓存服务器上的软件,它与memcache类似,都可以存储海量的数据,用在大访问量的web网站.聊天记录存放等方面,但是又与memcache不同: 1.缓存数据可以持久 ...

  2. C++解析JSON之JsonCPP

    一.JSON简介 JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读.编写.解析. JSON由两种基本结构构成: )"名称/值" ...

  3. 三星 PMU NXE2000,x-powers的AXP228,NXE2000

    核心板PMIC X4418CV2并没有用三星推荐的PMU NXE2000,而是自主研发,采用x-powers的AXP228,这是因为AXP228更符合用户的习惯,更适合做产品,他们有如下区别: PMU ...

  4. Beta Round #9 (酱油杯noi考后欢乐赛)乌鸦喝水

    题目:http://www.contesthunter.org/contest/Beta%20Round%20%EF%BC%839%20%28%E9%85%B1%E6%B2%B9%E6%9D%AFno ...

  5. 新一批电子商务解决方案和企业管理应用加入 VM Depot 中国站点

     新一批电子商务解决方案和企业管理应用加入 VM Depot 中国站点. //电子商务平台助力您建设网店// 大约有 6 个最近更新的电子商务程序包已经登陆 VM Depot. 这不仅囊括了全球知 ...

  6. OnClientClick事件

    1.OnClientClick="return  validation()"   //注意return 2.//默认情况下返回true function validation() ...

  7. 学习手工创建表,表关系以及用exists 来查询

    ---创建表a If exists(select * from sysobject where [name]=='a' and xType = 'u') Begin Drop table aa End ...

  8. Linux内核学习笔记2——Linux内核源码结构

    一 内核组成部分 内核是一个操作系统的核心,主要由五个部分组成:进程调度,内存管理,虚拟文件系统,网络结构,进程间通信. 1.进程调度(SCHED) 控制进程对CPU的访问.当需要选择下一个进程运行时 ...

  9. Poj 3695-Rectangles 矩形切割

    Rectangles Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3846   Accepted: 1124 Descri ...

  10. POJ 2502 Dijsktra

    POJ subway 600K 0MS 题意:乘坐地铁从家到学校,地铁40km/h 步行10km/h , 已知各个站点的x,y坐标,输入的信息每个列次用-,-1隔开,要求花费的时间最少 解决方案:把家 ...