今天折腾一下那个内联框架,就是 iframe 那个东西,想调整一下它里面内容的上下边距。我记得以前好像用过一个叫 marginheight
的属性,就寻思着直接在 iframe
标签上加上试试。
我就动手改代码,大概写成这样:
<iframe src="my_*" marginheight="20"></iframe>
想着这样就能让 `my_*` 这个页面在 `iframe` 里面显示的时候,顶部和底部能空出 20 像素的边距来,看着能舒服点。
结果?
刷新浏览器页面一看,没啥变化!上下边距还是紧贴着 iframe 的边框。我换好几个数值,什么 10 ,30 ,都不管用。当时就有点纳闷,难道是我记错?还是写法有问题?
不死心,我又去网上搜搜这个 marginheight
到底怎么回事。这一查才发现,原来我用的这个属性早就过时!现在的 HTML5 标准已经不支持在 iframe
上直接用 marginheight
或者 marginwidth
这些东西来设置边距。怪不得没效果,白忙活半天。
那现在该怎么弄?
网上都说,现在推荐用 CSS 来控制样式,这才是标准做法。要想调整 iframe 内部页面内容的边距,得从那个被嵌入的页面本身下手。
于是我打开那个被 iframe 引用的 `my_*` 文件,找到它的 <body>
标签。我给这个 <body>
标签加点 CSS 样式,用内边距 `padding` 来实现我想要的效果。
具体的做法是这样的:
- 打开
my_*
文件。 - 找到
<body>
标签。 - 给它加上
style
属性,设置padding-top
和padding-bottom
。
代码看起来就像这样:
<body style="padding-top: 20px; padding-bottom: 20px;">
或者,更规范一点,是把这个样式写到 CSS 文件里,然后给 body 一个 class 或者 id 来应用,不过我这里就图省事直接写行内样式,效果是一样的。
的效果
保存 `my_*` 文件,再回去刷新那个包含 iframe 的主页面。这下对!iframe 里面的内容,顶部和底部都留出 20 像素的空白,看着顺眼多。
这回实践也算是个小教训,提醒自己写代码还是要跟上时代,不能老抱着以前的老东西不放。虽然以前的属性用起来可能感觉直接点,但现在用 CSS 来控制样式才是王道,更灵活也更标准。以后遇到类似布局调整的问题,还是得优先考虑 CSS 的解决方案。