Can inline elements contain block elements?

前端 未结 7 1645
春和景丽
春和景丽 2021-01-20 16:16

Can an inline element contain a block element for instance: can a list have a paragraph?

相关标签:
7条回答
  • 2021-01-20 16:28

    Leaving aside the fact that LI and P are both block level ...

    It's never valid to do so, but in behavioural terms, sometimes you can nest a block level element inside a inline level one, but it depends on the browser parser.

    For example, in FireFox 3.x, with this markup

    <!DOCTYPE html>
    <i>
       foo
       <div>bar</div>
       baz
    </i>
    

    will display foo, bar, and baz all in italics.

    But this markup, replacing the inline element <i> with inline element <var> (which also has italics as its default rendering)

    <!DOCTYPE html>
    <var>
       foo
       <div>bar</div>
       baz
    </var>
    

    will only display foo in italics.

    JSFiddle for this

    Other browsers do not behave the same. Which is one reason why you should stick to using valid markup.

    0 讨论(0)
  • 2021-01-20 16:29

    It's incorrect markup to use a block element within an inline one. It may still render if the browser and Doctype are lenient, but it's not valid.

    You can usee CSS, however, as discussed here.

    0 讨论(0)
  • 2021-01-20 16:35

    It can, but it won't pass validation. There are ways round it that have been thoroughly discussed here: Is it wrong to change a block element to inline with CSS if it contains another block element?

    0 讨论(0)
  • 2021-01-20 16:35

    If you want block elements to behave like inline elements, set the display property to inline-block. If you need to support IE 7 or 6, for the same elements in your IE stylesheet, add these two rules: zoom:1; display:inline.

    0 讨论(0)
  • 2021-01-20 16:39

    block-level elements cannot descend from inline-level elements

    Eric Meyer book "CSS The dfinitive Guid" page 9

    0 讨论(0)
  • 2021-01-20 16:50

    Inline element can't contain block element and block element can contain all kind of. <li> , that you've mentioned, is not an inline element it's a block element as <p> , so both can contain each others

    0 讨论(0)
提交回复
热议问题