Seamless

Discussion in 'HTML' started by Jeff Thies, Feb 10, 2014.

  1. Jeff Thies

    Jeff Thies Guest

    I see that there is a seamless property for iframes. CanIuse is
    silent on this.

    What level of support is there. I rarely use iframes what is the
    current correct method to hide frame borders?

    Jeff
     
    Jeff Thies, Feb 10, 2014
    #1
    1. Advertisements

  2. Jeff Thies

    se Guest

    <iframe src="demo_iframe.htm" frameborder="0"></iframe>
    Taken from http://www.w3schools.com/html/html_iframe.asp
    /se
     
    se, Feb 10, 2014
    #2
    1. Advertisements

  3. Jeff Thies

    Gus Richter Guest

    The seamless attribute [HTML5 only] renders the browsing context in a
    manner that makes it appear to be part of the containing document
    (seamlessly included in the parent document). The living HTML5 document
    shows that it is "ready for first implementation", hence yet unsupported
    - caniuse therefore does not mention it.
    border-style:none;
     
    Gus Richter, Feb 10, 2014
    #3
  4. Jeff Thies

    dorayme Guest


    It is not trustworthy yet. See for yourself:

    <!DOCTYPE html>
    <html>
    <head>
    <title>A simple frameset document</title>
    </head>
    <body>
    <iframe src="foo.html" width="400" height="500" scrolling="auto"
    frameborder="0"></iframe> &nbsp; <iframe src="foo.html" width="400"
    height="500" scrolling="auto" seamless="seamless"></iframe>
    </body>
    </html>
     
    dorayme, Feb 10, 2014
    #4
  5. Close to none. Quoting and paraphrasing myself and others at
    http://stackoverflow.com/questions/4804604/html5-iframe-seamless-attribute :

    Mostly, no support.

    The support in Chrome (tested on 31 beta) is only for the removal of the
    default borders. The scrollbars are there, the size does not adapt to
    the requirements of the content, links open inside the inline frame,
    etc. So only the most trivial part of seamless as currently defined is
    supported, the part that can easily be handled with CSS or with the
    frameborder attribute.

    Support is said to exist in Safari 7 (but not 6), but I cannot confirm
    this, as Safari 7 is available for Mac only.
    "Correct" as per W3C recommendations is to use a CSS rule like
    iframe { border: none }
    In practice, the frameborder=0 attribute works a little more often (due
    to the usual CSS Caveats).
     
    Jukka K. Korpela, Feb 10, 2014
    #5
  6. Jeff Thies

    Gus Richter Guest

    Excuse me but I've messed up my Thunderbird in that I cannot link to a
    message ID - you would do better to quote or link to a web page. So,
    since I don't know what you are referring to, I will review what I
    believe to be pertinent:

    frameborder=0 attribute is good if you are worried about a client
    without CSS support - I don't.
    BTW, the HTML5 "Living Standard" does not include frameborder as an
    attribute for iframe and therefore, by omission, suggests to use CSS
    instead. That said, and due to legacy support, frameborder works.

    border-style:none; is the 'shorthand' property 1-4 border 'style'
    values (top, right, bottom, left).

    border:none; is the 'shorthand' property for border 'width', 'style'
    and 'color' values.

    All three above work and you may use your poison.
     
    Gus Richter, Feb 11, 2014
    #6
  7. It works just as well even if you are not worried.
    First, "Living Standard" is an oxymoron if there is one. A document that
    may and will change daily without notice and without a real change log
    can hardly be a standard, whatever its merits might be.

    Second, it describes (well, at least right now), as "suggested
    rendering" (i.e., browsers are nor required to obey this, but they do),
    the attribute by specifying its effect:

    iframe[frameborder=0], iframe[frameborder=no i] { border: none; }

    http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#phrasing-content-1
    It suggests that explicitly, at
    http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#non-conforming-features

    It also declares the attribute as obsolete, nonconforming, forbidden,
    cursed, anathema... oops I made some of that up, but that's the tone.
    This, on the other hand, is just some people telling what other people
    should do as authors. Like telling them to use their right hand when
    typing code, because the left hand is unholy.

    None of the arguments against "presentational attributes", arguments
    that people keep repeating like repeaters, makes sense in the case of
    frameborder. The only one that comes close to making sense is the very
    theoretical idea that the attribute mixes presentation with content and
    structure. But people who preach against presentational attributes use,
    at least in real life, attributes like class="noborder". They are just
    as presentational, except that their effect is indirect and more
    difficult to see, i.e. they obscure the code more than the
    "presentational" attribute does. Using style="border: none" is more
    direct, but the style attribute is (for good reasons, actually) frowned
    upon by people who write the "standards", and of course it is very much
    presentational.

    If the development of HTML "standards" were a bit more rational, the
    "standards" would say that there are some attributes that are used to
    affect rendering, with no other defined meaning, and that such
    attributes will not be added any more. And they would add that CSS has a
    rich and increasing set of presentational features, please use them,
    with the usual CSS caveats.
    It does.
    The frameborder attribute additionally works even when CSS support is
    disabled or the CSS file is lost in transmission.
     
    Jukka K. Korpela, Feb 11, 2014
    #7
  8. Jeff Thies

    Gus Richter Guest

    Such valuable information. Thank you for that contribution.

    .... and therefore, by omission, suggests to use CSS instead. That said,
    and due to legacy support, frameborder works.

    You omitted this part in order to hide the fact that you missed my
    mention of "legacy support" in order that you could repeat in your words
    what I wrote.
    Actually the link should be:
    Thank you for the confirmation.
    Thank you for the confirmation.
    Of course it works, as I said. It is an HTML attribute and not CSS.
     
    Gus Richter, Feb 11, 2014
    #8
  9. Jeff Thies

    Gus Richter Guest

    Of course it works since it is an HTML attribute and not CSS.
    Not only if you use inline styling, but also if you place the rules in a
    stylesheet. HTML attributes function even if CSS is disabled, uses
    inline styles or stylesheet.
     
    Gus Richter, Feb 11, 2014
    #9
  10. Jeff Thies

    richard Guest

    That is totally outdated code.
    Use CSS instead.

    <iframe style="width:500px; height:500px; border:none;">

    If you have to have scrolling, then a border will show up and negate the
    seamless effect.
     
    richard, Feb 23, 2014
    #10
  11. Jeff Thies

    richard Guest

    working example:
    www.mroldies.net

    where's the iframe?
    Unless you lokk at the source code, you don't know it's there.
     
    richard, Feb 23, 2014
    #11
  12. Jeff Thies

    richard Guest

    He maybe right, but styling with css is preferred.
     
    richard, Feb 23, 2014
    #12
  13. Jeff Thies

    dorayme Guest

    Outdated like bad milk, meat, fish? Outdated like jeans that flare?
    Instead? Why not in addition?

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>A frameset document tester</title>
    </head>
    <body>
    <iframe src="http://www.mroldies.net" width="300" height="500"
    scrolling="auto"
    frameborder="0"></iframe> &nbsp; <iframe style="width: 400px;
    height:500px; border: none;" src="http://www.mroldies.net"
    scrolling="auto"></iframe> &nbsp; <iframe
    src="http://www.mroldies.net" width="300" height="500"
    scrolling="auto" seamless="seamless"></iframe>
    </body>
    </html>

    It's a tester to do research on your browsers. When you have used it
    Richard, please report back on whether it is like off milk, how fuddy
    duddy browsers are, how it behaves with CSS off, with cheese gone off,
    and any other things you care to expound on.
     
    dorayme, Feb 23, 2014
    #13
  14. Jeff Thies

    richard Guest

    IMO, only extremely ancient browsers would not respond to css.
    The vast majority of users probably don't even know that you can turn off
    styles in some browsers.
    Like with Javascript, most poeple do not turn it off. Ever.

    As you know, or should know, the use of such attributes as width and height
    in the old manner, is highly frowned upon, and the validator may reject it.

    Now try your "seamless" in an html 4 document and I'll bet that it gets
    rejected.
    With many people still using XP and Vista, those versions of IE won't even
    know what to do with it.
    But does work with css.
     
    richard, Feb 24, 2014
    #14
  15. Jeff Thies

    dorayme Guest

    Please try the markup I offered and report back your comprehensive
    findings in all the browsers you have. You seem to mistakenly think my
    markup *recommends* some one particular way of marking up and CSSing,
    it does not, it is about helping fisherman.

    Thank you for your attention to this matter, and as Luigi might say,
    "Have a nice day".
     
    dorayme, Feb 24, 2014
    #15
  16. Jeff Thies

    se Guest

    "but styling with css is preferred"
    You're right in this. Running doctype HTML5 through validator.w3.org/
    declares frameborder as obsolete, and urges to use css.

    /se
     
    se, Feb 24, 2014
    #16
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.