开发者

Possible in HTML to make IE more forgiving of markup mistakes like extraneous tags?

开发者 https://www.devze.com 2023-01-27 23:47 出处:网络
I defined a jQuery tabs element like this: <div id=\"tabs\"> <ul> <li><a href=\"#tabs-1\">Nunc tincidunt</a></li>

I defined a jQuery tabs element like this:

    <div id="tabs">
        <ul>
            <li><a href="#tabs-1">Nunc tincidunt</a></li>
            <li><a href="#tabs-2">Proin dolor</a></li>
            <li><a href="#tabs-3">Aenean lacinia</a></li>
        </ul>
        <div id="tabs-1">
            <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
        </div>
        <div id="tabs-2">
            <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
        </div>
        <div id="tabs-3">
            <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
            <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenea开发者_Go百科n vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
        </div>
    </div>
</div> <!-- OOPS! EXTRANEOUS DIV TAG! -->

<script>
    $(function() {
        $( "#tabs" ).tabs();
    });
</script>

It was working in Chrome and Firefox but not in IE.

But then I noticed an extraneous closing </div> tag at the end of this markup.

After I removed it, the tabs appeared correctly in IE.

Is it possible to make IE less sensitive to trivial markup mistakes like this?

This is the document type I'm using:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> 


Is it possible to make IE less sensitive to trivial markup mistakes like this?

No, it's not, output valid markup. More so by having XHTML 1.0 Strict as your DOCTYPE you're telling the browser "this is perfect", it's one of the top 3 strictest markup DOCTYPEs you can have.

IE can't render a 100% valid page right most of the time, it certainly won't tolerate most invalid ones...fixing the markup is by far the best option, not trying to make the browser cope with it. After all you control your markup, you don't control the browser (or any updates it may get...or which browser the user's using). By having valid markup, you've done the best first step in ensuring it renders as close as possible across browsers.

Think of it this way, you're "oops" </div> tag...what would you do? Which <div> was that supposed to close? You want the browser to take a stab at it, possibly rendering a very improperly formated page? It can't know what you intended, all it knows is what markup it received.

0

精彩评论

暂无评论...
验证码 换一张
取 消