`
yiminghe
  • 浏览: 1460304 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

行内替换元素排列问题解释

阅读更多

css2.1 规范

 

'vertical-align'

      baseline
      将框的基线对齐父框的基线。如果该框没有基线,将框的底线对齐父的基线。、

默认 vertical-align 都为 baseline 
 


那么下面一段html 到底应该成何效果:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>行内 img 问题</title>
	
</head>

<body>
	
	<p style='margin:0;padding:0;border:1px solid green;'><img id='my' src='my.jpg' alt='my'/>  </p>
	
</body>

</html>

 

 

   ie 6,7 :

 

可见图片下有一小段 间隔


 

firefox :

 

 

可见图片下没有间隔

 

 

 

那么按照规范应该是 ff 错了?

 

当然如果想表现一样,设置

vertical-align bottom;或者 display:block;

即可 ,但 ff 真的可能错了么.


同理 img 换做 input 是同样

 

ie:

 

 

 

ff:

 

 

 

 

不过当图片旁有一个文本串时,则 image 时 ie ff 都表现正常了,文本基线对准了p 的基线,img 底框也对准了p 的基线

 



但是对于 input 并 不适用

 

ff 底端并没有和容器间隔,或者ff认为 input 存在基线 ?



ie:

 

ff:

 


关于图片排列解释:


这是实际上涉及到了传统拼图设计,表格布局的设计思路,当 dtd transitional 时,ie认为到了标准模式,则图片是行内元素依照基线对齐,而ff认为这是 “almost-standards” 模式,仍然以前的做法,块状或者表格里只有一张图片时,则td,div等紧贴图片,只有 ff看到 dtd strict才认为到了标准模式和ie一样表现!

 

解决方法:

1. Any image alone in a table cell (e.g., single-pixel spacer images) should be made block-level.
2. Any image in a table cell with other images should be vertically aligned with the bottom of the line box.
3. Any image in a table cell with other images and text should have its vertical alignment changed as necessary, if at all.

 

 

 

 

 

参考文章:

 

https://developer.mozilla.org/en/Images,_Tables,_and_Mysterious_Gaps

 

 

  • 大小: 37.9 KB
  • 大小: 63.2 KB
  • 大小: 33.1 KB
  • 大小: 6.4 KB
  • 大小: 1 KB
  • 大小: 6.6 KB
  • 大小: 1.4 KB
分享到:
评论

相关推荐

    css中替换元素和不可替换元素及显示元素详细探讨

    主要分为两类:替换元素和不可替换元素,同时,根据它们在页面布局中的行为,还可以进一步分为块级元素和行内元素。 **替换元素**是指那些浏览器根据元素自身的标签和属性来确定其显示内容的元素。比如,`&lt;img&gt;`...

    bootstrap行内修改demo

    在行内编辑中,这些表单元素会替换原本的数据展示,让用户能够直接输入新值。 5. **JavaScript插件**:为了实现行内编辑的交互功能,可能需要用到Bootstrap的JavaScript插件,如`data-toggle`属性和`modal`对话框,...

    css中行内元素和块级元素的区别

    这涉及到替换元素(Replaced Elements)和不可替换元素(Non-Replaced Elements)的概念。替换元素是浏览器基于元素的标签和属性来决定其显示内容的,例如`&lt;img&gt;`、`&lt;input&gt;`、`&lt;textarea&gt;`等。尽管它们默认表现为...

    CSS — 元素高度的计算思路1

    本篇文章将详细探讨两种不同类型元素——行内非替换元素(inline)和块元素(包括block和inline-block)的高度计算思路,以及line-height、height属性、盒模型和行框模型之间的关系。 首先,我们要理解行框模型...

    详解HTML常用的标签中行内元素和块级元素

    HTML还定义了可变元素(可替换元素,replaced element),这类元素的表现很特殊,它们的呈现不完全受CSS控制,而是由元素本身的内容和尺寸决定。常见的可变元素包括、、等。比如标签,其尺寸取决于图片的实际大小。 ...

    深入理解css盒子模型1

    在非替换元素的水平格式化中,有七个属性共同决定元素的宽度:`margin-left`、`border-left`、`padding-left`、`width`、`padding-right`、`border-right`、`margin-right`。当`width`设置为`auto`时,浏览器会自动...

    css常见问题.docx

    - 行内非替换元素(如`&lt;span&gt;`、`&lt;a&gt;`)的`width`和`height`设置无效,因为它们的高度由其内容决定。但`margin`和`padding`是有效的,尽管它们不会改变元素的行高。这可能导致在布局中出现意外的行高变化,需要谨慎...

    为何img、input等内联元素可以设置宽高

    总的来说,img和input等内联元素可以设置宽高的原因在于它们的替换元素特性以及CSS中对行内元素的宽高处理规则。这种灵活性允许开发者在保持文本流的同时,调整这些元素的视觉效果,从而实现更加精致和多样化的网页...

    2021年前端面试题汇总.docx

    - `img`和`input`属于行内替换元素,它们的行为类似于块级元素,可以设置宽高和内外边距。 3. **HTML5新特性**: - 语义化标签如`header`, `footer`, `section`, `nav`, `aside`, `article`增强网页结构。 - ...

    div+css有实例,易学易懂

    - **内联元素的默认排列**:内联元素在同一行内水平排列。 - **块元素和内联元素的混合默认排列**:两者按顺序依次排列。 - **使用浮动属性进行定位**:通过`float`属性可以让元素浮动到左边或右边。 #### 定位属性...

    以div代替frameset,用css实现仿框架布局

    例如,可以设置`display: inline-block`让`div`元素像行内元素一样排列,或者设置`display: flex`或`grid`来创建灵活的网格布局。 接下来,我们可以通过CSS的`width`、`height`、`margin`、`padding`等属性控制`div...

    Web前端开发职业技能等级证书考试-中级模拟试卷.docx

    而 `&lt;div&gt;` 和 `&lt;p&gt;` 是块级元素,`&lt;img&gt;` 默认情况下为行内替换元素。 6. 弹性布局的属性中,`flex-container` 并非正确的属性,应该是 `flex-wrap` 或其他相关属性。 7. 媒体查询的写法中,选项C的逻辑操作符...

    CSS 图片横向排列实现代码

    每个`&lt;li&gt;`元素表示一个图片项,它们被设置为浮动(`float:left`)并水平排列,通过`margin-left:30px`保持适当的间距,同时使用`display:inline`使它们在同一行内显示: ```css #products li { width: 110px; ...

    web前端面试题4.doc

    行内元素如`span`、`a`则按顺序排列,宽度由内容决定,高度通常由字体大小决定。行内元素的特点是它们不会影响周围元素的布局。 【CSS定位】:CSS定位包括`static`, `relative`, `absolute`, `fixed`四种方式。`...

    Div+CSS布局实例教程

    3. 非替换元素与替换元素:理解这两者的区别,有助于处理图像、输入框等元素的样式。 4. 媒体查询(Media Queries):用于实现响应式设计,根据不同设备的特性应用不同的CSS规则。 四、JavaScript与HTML交互 1. ...

    2023年前端面试必备最新八股文(基础+进阶内容+持续更新)

    创建BFC的方法包括根元素、浮动元素、绝对定位元素、行内块元素、设置了`overflow`属性的元素以及表格单元格和弹性布局元素等。解决外边距重叠、清除浮动和阻止元素被浮动元素覆盖等问题时,BFC起着关键作用。 接着...

    深入理解 line-height 和 vertical-align

    3. **content area**:内容区,对于非替换元素(如`&lt;span&gt;`、`&lt;p&gt;`),内容区大小由`font-size`和字体本身决定;对于替换元素(如`&lt;img&gt;`、`&lt;input&gt;`),内容区则由元素本身的宽度和高度决定。 4. **baseline**:...

    网页的效果:Style 中的Display用法 (2).docx

    4. `inline-block`:结合了`block`和`inline`的特点,元素会像内联元素一样排列,但内容按块级元素的方式处理。 5. `list-item`:将元素呈现为列表项,通常与`&lt;li&gt;`元素一起使用,可以添加项目符号。 6. `table`、...

    前端面试题

    行内元素如`&lt;span&gt;`, `&lt;a&gt;`, `&lt;img&gt;`等,它们在同一行内排列。 3. CSS选择符优先级:ID选择器(100) &gt; 类选择器(10) &gt; 标签选择器(1) &gt; 通配符选择器(0) &gt; 行内样式(1000) &gt; `!important`。行内样式和`!important`...

    前端面试题汇总

    - **src**: 加载资源,替换当前元素。 - **href**: 指向资源的链接,用于引用或跳转。 **11. 常见图片格式** - **JPEG**: 适用于照片和色彩丰富的图像。 - **PNG**: 无损压缩,支持透明度。 - **GIF**: 动态图像,...

Global site tag (gtag.js) - Google Analytics