Любой способ использования фреймов в HTML5?

для школы я должен сделать веб-сайт и он должен использовать эти Дрянные старые проклятые фреймы FML. Я уже жаловался на это своему учителю без всякого успеха : (

Я хочу использовать HTML5, но кажется, что фреймы устарели. Действительно ли я должен использовать XHTML или HTML 4? Есть ли какая-то работа, которая заставляет мои страницы проверять HTML5 с использованием фреймов?

6 ответов


Теперь есть много примеров, когда я отвечаю на вопросы эссе о том, почему важны следующие правила проверки. Я также говорил, что иногда нужно быть бунтарем, нарушать правила и документировать причины.

вы можете видеть в этом примере, что наборы фреймов работают в HTML5 еще. Однако мне пришлось загрузить код и добавить HTML5 doctype вверху. Но элемент frameset был все еще распознан, и желаемый результат был достигнутый.

поэтому, зная, что использование наборов фреймов совершенно абсурдно, и зная, что вы должны использовать это, как продиктовано вашим профессором/учителем, вы можете просто иметь дело с одной ошибкой проверки в валидаторе W3C и использовать как элемент HTML5 video, так и устаревший элемент набора фреймов.

<!DOCTYPE html>
<html>
    <head>
    </head>
    <!-- frameset is deprecated in html5, but it still works. -->
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="http://www.google.com" target="main">
    </frameset>
</html>

имейте в виду, что если это проект для школы, скорее всего, не будет то, что будет через год или два после того, как браузер поставщики полностью удаляют поддержку frameset для HTML5. Просто знайте, что вы правы, и просто делайте то, что просит ваш учитель/профессор, чтобы получить оценку :)

обновление:

Родительский документ верхнего уровня использует XHTML, а фрейм использует HTML5. Валидатор не жаловался на незаконность набора кадров, и он не жаловался на видео элемент.

.в PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
    <head>
    </head>
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="video.html" target="main">
    </frameset>
</html>

видео.HTML-код:

<!doctype html>
<html>
    <head>
    </head>
    <body>
        <div id="player-container">
            <div class="arrow"></div>
            <div class="player">

                <video id="vid1" width="480" height="267" 
                    poster="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb480.jpg"
                    durationHint="33" controls>
                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb_trailer_iphone.m4v" />

                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb400p.ogv" />

                </video>

        </div>
    </body>
</html>

Я знаю, что ваш класс закончился, но в профессиональном кодировании, пусть это будет урок:

  • "устаревший" означает "избегайте использования; он будет удален в будущем"
  • устаревшие вещи все еще работают - просто не ожидайте поддержки или будущее
  • Если требование требует этого, и вы не можете обсудить его, просто используйте устаревшую конструкцию.
    • Если вы действительно обеспокоены, разработайте альтернативную реализацию на стороне и держите его наготове к неизбежному провалу
    • плату за дополнительную работу. Запрашивая устаревшую функцию, они просят вас удвоить работу. Вы все равно увидите его снова, так что можете загрузить его спереди.
    • когда произойдет неудача, сообщите заинтересованной стороне, что это было то, чего вы боялись; что вы готовились к этому, но это займет некоторое время
    • разверните решение так быстро, как вы можете (будут ошибки)
    • получить репутацию для предотвращение чрезмерного простоя.

возможно, некоторая инъекция содержимого страницы AJAX может быть использована в качестве альтернативы, хотя я все еще не могу понять, почему ваш Учитель отказался бы избавить сайт от кадров.

кроме того, есть ли какая-либо конкретная причина, по которой вы лично хотите нам HTML5?

но если нет, я верю <iframe>s все еще вокруг.


для этого вам придется прибегнуть к XHTML или HTML 4.01. Хотя iframe все еще существует в HTML5, его использование не рекомендуется для встраивания контента, предназначенного для пользователя.

и обязательно скажите своему учителю, что фреймы не были современными с конца девяностых. Им вообще нет места ни в каком образовании, разве что по историческим причинам.


фреймы не были устаревшими в HTML5, но были устаревшими в XHTML 1.1 Strict и 2.0, но остались в XHTML Transitional и вернулись в HTML5. Также здесь - интересная статья об использовании CSS для имитации фреймов без фреймов. Я только что протестировал его в IE 8, FF 3, Opera 11, Safari 5, Chrome 8. Я люблю фреймы, но у них есть свои проблемы, особенно с поисковыми системами, закладками и печатью, а с CSS вы можете создавать печать или отображать только контент. Я надеюсь обновите фрейм XHTML/CSS Alex без решения фреймов до HTML5 / CSS3.


Я использовал кадры на моем коммерческом сайте непрерывного образования более 15 лет. Фреймы позволяют фрейму навигации загружать материал в основной фрейм с помощью целевого объекта, оставляя фрейм навигатора нетронутым. Кроме того, скрипты Perl довольно хорошо работают с формой фрейма, возвращающей вывод в тот же фрейм. Я люблю рамки и буду продолжать их использовать. CSS слишком сложен для практического использования. У меня не было проблем с использованием фреймов с HTML5 с IE, Safari, Chrome или Firefox.