Перекодировать, чтобы избавиться от абсолютного позиционирования?

  • Автор темы MethodX
  • 64
  • Обновлено
  • 12, May 2024
  • #1
привет...



В своих проектах я почти всегда создаю родительский слой (div)... с относительным позиционированием; & с полем «0 auto», чтобы он оставался по центру страницы (поскольку я почти всегда использую фоновые изображения)… & затем мои другие элементы div (вложенные внутри родительского элемента) всегда позиционируются абсолютно...код которого будет выглядеть примерно так:
 

<div id="Layer1" style="position:relative; width:840px; height:2500px; margin: 0 auto; background color: #FFFFF; layer-background-color: #FFFFFF">

<div id="Layer2" style="position:absolute; left:0px; top:0px; width:840px; height:222px; z-index:1; background-color: #00CCFF; layer-background-color: #00CCFF; border: 1px none #000000;"></div>

<div id="Layer3" class="style1" style="position:absolute; left:0px; top:50px; width:840px; height:136px; z-index:1">

<div align="center">TITLE</div>

</div>

<div id="Layer4" style="position:absolute; left:0px; top:250px; width:440px; height:380px; z-index:1"><img src="SomePhoto.jpg" width="440" height="380"></div>

<div id="Layer5" style="position:absolute; left:300px; top:720px; width:460px; height:330px; z-index:1">Some Text </div>

</div>


HTML: ... с результатом, похожим на этот:

http://www.moonjams.net/EXAMPLE.png

Итак... я ни в коем случае не профессиональный программист... Я занимаюсь дизайном так же, как графический иллюстратор делал бы верстку страницы журнала... но... учитывая тот факт, что мне сказали никогда чтобы использовать абсолютное позиционирование (в дочерних элементах внутри родительского), как бы мне теперь перекодировать эту страницу (используя, как я предполагаю, CSS, добавленный вместе с HTML), чтобы она выглядела так, пока размер браузера не будет изменен.

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

слева направо, сверху вниз.

БЕЗ ИСПОЛЬЗОВАНИЯ УЖАСНОГО АБСОЛЮТНОГО ПОЗИЦИОНИРОВАНИЯ...???

[кстати.

я не прошу, чтобы за меня сделали мою работу.

но если бы кто-нибудь мог предоставить пример короткого кода с использованием пары вымышленных блоков изображений, я был бы признателен.

ИЛИ.

направьте меня к информация в Интернете с подробным описанием того, как это сделать.

спасибо].

спасибо,

документ

MethodX


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 01, Jun 2024
  • #2
Хорошо, сначала HTML:
 

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">

<meta

name="viewport"

content="ширина = ширина устройства, высота = высота устройства, начальный масштаб = 1"

>

<link

rel="stylesheet"

href="screen.css"

media="screen,projection,tv"

>

<title>

[Page Title - ]Site Title

</title>

</head><body>

<div class="widthWrapper">

<div id="top">

<h1>Page Title</h1>

<p>

Description Text

</p>

<!-- #top --></div>

<!--

using DIV around paragraphs on the assumption they might have

headers or multiple paragraphs

-->

<!-- in production DESCRIBE what this text *IS* for the class -->

<div id="firstTextSection">

<p>

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Ut tincidunt lacinia magna at cursus.

Maecenas non sagittis urna.

Aenean tempor justo a ex fringilla, a sagittis eros pharetra.

Aenean a mi pretium urna dapibus pretium.

Mauris volutpat iaculis lobortis.

Morbi at nisl quis sem varius fermentum eget et metus.

Suspendisse cursus nec lorem eget scelerisque.

Fusce posuere vestibulum enim, ac semper risus vehicula eu. Ut cursus risus id ex feugiat mattis.

Proin tempor tempus diam sed gravida.

Cras tempus magna ut scelerisque cursus.

Ut blandit sagittis ante, id malesuada massa volutpat eu. Vivamus rhoncus nec odio tincidunt rhoncus.

Integer varius massa id vehicula volutpat.

Interdum et malesuada fames ac ante ipsum primis in faucibus.

Nulla sit amet nisl ut leo fermentum gravida facilisis vel risus.

</p>

<!-- #firstTextSection --></div>

<img

src="images/placeholder_3_2.png"

alt="изображение-заполнитель"

width="300" height="200"

class="plate"

>

<!-- in production DESCRIBE what this text *IS* for the class -->

<div id="secondTextSection">

<p>

In hac habitasse platea dictumst.

Proin ullamcorper, metus ac laoreet interdum, turpis nisl posuere nibh, a sodales enim orci maximus metus.

Proin non fermentum mi, nec imperdiet velit.

Maecenas semper id magna id faucibus.

Maecenas non arcu et nulla condimentum consequat.

Phasellus eleifend libero vitae purus convallis finibus.

Sed tincidunt leo urna, in condimentum neque dapibus nec.

Interdum et malesuada fames ac ante ipsum primis in faucibus.

Nulla sed porta diam.

</p>

<!-- #secondTextSection --></div>

<img

src="images/placeholder_3_1.png"

alt="изображение-заполнитель"

width="300" height="100"

class="endPlate"

>

<!-- #top --></div>

</body></html>

Код (разметка): я сокращаю тип документа через мета-кодировку до одной строки как напоминание о том, что эти элементы ДОЛЖНЫ появляться в этом порядке, и между ними НИЧЕГО больше не вставлено.

Я сокращаю и по той же причине.

Это просто полезное напоминание о том, что не надо накручивать себя. МЕТА области просмотра существует для того, чтобы сообщать мобильным браузерам, что мы знаем, что делаем.

Есть и другие ценности, которые другие люди устанавливают как максимальные — эти люди — идиоты.

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

Хорошее практическое правило? Не говорите посетителям вашего сайта, чтобы они пошли на хуй.

Если мы не объявим значения, которые я установил, мобильные устройства будут (больше) лгать о своем фактическом разрешении, искажая наш стиль, и применять свои собственные случайные значения масштабирования.

Мобильные браузеры делают это для работы с веб-сайтами, созданными до появления CSS3 и адаптивного дизайна.

Когда мы строим заново, МЕТА области просмотра дает им понять, что мы все делаем правильно. Ссылка на таблицу стилей помещает наш стиль во внешний файл, ГДЕ ОН ПРИНАДЛЕЖИТ, и нацелен только на соответствующие цели экранного мультимедиа.



Макет экрана обычно представляет собой ерунду для печати, он, конечно, не имеет никакого смысла для слухового восприятия, поэтому, когда люди обращаются к таблице стилей без атрибута media или объявляют media="all", они являются невежественными пустяками, не имеющими права напишите одну строку HTML.

Проверка HTML 5 будет жаловаться на «проекцию» и «телевидение» — черт с ними! В обращении все еще находится множество устройств, которые будут применять свои собственные правила или полностью игнорировать наш стиль, если мы их не включим! (на самом деле действительные значения в media="" не имеют отношения к спецификациям HTML, но в HTML 5 много подобных глупостей!) Надеюсь, мне не придется объяснять, что делает тег заголовка.

Эх, мне все равно лучше.

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

Вот именно, вот для чего это.

Это НЕ место для полного описания, и это точно не то место, где можно слепо набивать кучу ключевых слов, как это делают двухбитные, полоумные SEO-мошенники и грязные мешки с грязью. Если вы не догадались, существует МНОГО хищных мошенников, которые попытаются набить вас навозом.

Многие из них управляют якобы «профессиональными» веб-сайтами, такими как W3Schools, или подавляют любые разногласия, чтобы поддерживать свою собственную маленькую эхо-камеру подхалимов и подхалимов, как это делает Sitepoint.
Я использую кодовое обозначение скобок, чтобы указать «необязательно», как напоминание о том, что содержимое тега заголовка должно соответствовать этому шаблону И НИКАКИМ ДРУГИМ. Необязательное имя текущей страницы, дефис, затем заголовок сайта. Ни больше, ни меньше. (Ужасно, сколько людей это портят!) Закройте голову, откройте тело и приступайте к нашему контенту.

Это следует за тем, что я сказал в своем первом ответе: DIV.widthWrapper — это внешний контейнер для установки ограничения ширины.

Я называю его widthWrapper, чтобы сказать, что он собирается делать, не говоря, КАКУЮ КОНКРЕТНУЮ ШИРИНУ он устанавливает.

Возможно, это не установка ничего.

Опять же, то, ЧТО это выглядит, не имеет отношения к вашему HTML во всех случаях, кроме самых редких, поэтому тег
 

Мишко1


Рег
12 Oct, 2014

Тем
1

Постов
2

Баллов
12
  • 03, Jun 2024
  • #3
смертельная тень...

Все здесь? Тарабарщина. И это, конечно, не отражается на твоих навыках, которые, очевидно, многочисленны и великолепны... просто я не могу понять большую часть этого. Вы можете высмеивать то, как я проектирую [и старомодный метод написания кода, который я на самом деле научился (Теперь я знаю, что буду неправильно) из DW 2004 (программное обеспечение для веб-дизайна типа WYSIWYG)]... дерзайте.

но правда в том, что сейчас у меня нет времени возвращаться и изучать «прогрессивное улучшение», или «гибкий блок», или « переполнение стека» или что-то в этом роде.

У меня есть графический иллюстратор и некоторые навыки работы в сфере ИТ; и хороший глаз (и в моей жизни нет времени)... и точка.

Я был бы безмерно признателен, если бы вы могли просто разметить мне быстрый пример кода (я мог бы поместиться между тегами тела) на основе моего примерного изображения.

в результате чего, если бы я вставил его в свою программу для веб-дизайна, он выглядел бы примерно так же. изображение.

и затем я мог бы манипулировать этим кодом с моими собственными изображениями и текстом.

и тем самым завершить веб-сайт, который я разрабатываю для своего региона АН... а также учиться у делает, что было бы для меня большей помощью в долгосрочной перспективе.

спасибо,

документ
 

BelgradeSummer


Рег
01 Jan, 2011

Тем
0

Постов
1

Баллов
1
  • 03, Jun 2024
  • #4
Джезиз...!!!

Могу ли я/должен ли я вам заплатить?... это самая замечательная (простите за каламбур) информация обо всей этой ерунде, которую я когда-либо видел...!!! Я возьму код/изображения завтра; &amp; начинать читать и усваивать. Ты действительно оказал мне большую услугу, чувак... ты не только предоставил технику, но и объяснил ее (подробно) так, чтобы я смог ее понять (как только впью в нее зубы). ..и это не только позволит мне закончить сайт, который я разрабатываю правильно...но это поможет мне освоить правильную методологию в долгосрочной перспективе...спасибо миллион...Я в восторге и испытываю огромную благодарность...!!!

документ
 

_Amorph_


Рег
01 Jan, 2011

Тем
0

Постов
3

Баллов
3
  • 06, Jun 2024
  • #5
Журналы имеют фиксированный размер, а веб-сайты — нет.

Есть поговорка, которую мы бесконечно использовали более десяти лет назад, когда «графические дизайнеры» перешли из печати в Интернет: «Интернет — это не печать!». Если вы придерживаетесь такого мышления, вам нужно забыть ВСЕ, что, как вам кажется, вы знаете о макете и дизайне.

Веб-сайты должны и обычно должны сочетать в себе три вещи:

1) Плавность — это означает адаптацию к ширине экрана.

Полужидкий дизайн — это когда вы устанавливаете максимальную ширину, чтобы макет не становился настолько большим, что за длинными абзацами было трудно следить.

Вам следует строить таким образом, а не устанавливать фиксированную ширину.



2) Эластичный — использование размера шрифта EM или %, который наследуется от родительского элемента, а в случае BODY — от значения по умолчанию браузера или ОС. Это позволяет всему макету и странице сжиматься и увеличиваться в зависимости от размера шрифта, чего пиксели не привносят в таблицу.



Многие скажут, что по умолчанию всегда 16 пикселей, что привело к «62,5% = 10 пикселей». ЛОЖЬ -- вообще такие люди болтают впустую. 3) Адаптивность — использование медиа-запросов для изменения макета, чтобы он лучше соответствовал уменьшающемуся размеру экрана или для более эффективного использования доступного пространства на больших дисплеях.

Обычно это включает в себя добавление/удаление столбцов, лишнее представление и т. д.

Вы не услышите фразу: «Ну, мне нужен внешний контейнер шириной 840 пикселей».

Вы ДЕЙСТВИТЕЛЬНО не получите объявления фиксированной высоты ни для чего!



И большая часть мусорного «программного обеспечения для веб-дизайна» его не предоставляет, поэтому в целом, будь то Dreamweaver, художник, ранее известный как Frontpage, или полоумные мошенники, такие как Wix/Weebly, НЕ являются инструментами дизайна, независимо от того, сколько мошенников и нубские хищники пытаются продать вам эту идею.



В тот момент, когда у него есть WYSIWYG, это универсальный мусор, извергающий мусорные результаты.

Если вы ДЕЙСТВИТЕЛЬНО хотите «учиться на практике», вам придется взять простой текстовый редактор и научиться ПРАВИЛЬНО использовать HTML и CSS, а не использовать неряшливые умственно ослабленные ярлыки, которые ВСЕГДА приводят к сломанной игрушечной хламу.

. Теперь, после всего сказанного, дайте мне несколько минут, и я приведу рабочий пример, а затем задокументирую его раздел за разделом, чтобы объяснить сделанный выбор, чтобы вы могли прочитать его и понять, как/что/почему что я сделал.

Раньше я делал два или три таких занятия в неделю, но в последнее время аудитория людей, ДЕЙСТВИТЕЛЬНО желающих научиться делать что-то правильно, испарилась перед лицом подлых мешков с грязью, торгующих ложью.
 

DarkVolf


Рег
19 Dec, 2015

Тем
0

Постов
2

Баллов
2
  • 10, Jun 2024
  • #6
Вместо того, чтобы давать вам код, я бы отослал вас к документации начальной загрузки для их сетки здесь. https://getbootstrap.com/docs/4.0/layout/overview/

и их документы для размещения здесь https://getbootstrap.com/docs/4.0/utilities/position/

а также как смещать блоки здесь https://getbootstrap.com/docs/4.0/layout/grid/#offsetting-columns

За исключением этого, я бы использовал поля и отступы для элементов в сочетании с точками останова (медиа-запросами) для потока на небольших устройствах. Это позволит вам осуществлять относительное позиционирование, предполагая, что элементы тела всегда позиционируются абсолютно.
 

UGariLLa


Рег
19 Mar, 2014

Тем
2

Постов
4

Баллов
24
  • 11, Jun 2024
  • #7
хорошо, живая копия здесь:
http://www.cutcodedown.com/for_others/mark4man/template.html

Как и во всех моих примерах, каталог:
http://www.cutcodedown.com/for_others/mark4man/

Широко открыт для легкого доступа к клейким вещам и деталям — не стесняйтесь оглядываться по сторонам. Давайте разберем CSS, следуя инструкциям:
http://www.cutcodedown.com/for_others/mark4man/screen.css

Первое, что у меня есть в каждой таблице стилей, — это «сброс». Они существуют потому, что внешний вид HTML-элементов по умолчанию на самом деле НЕ касается HTML.

такого понятия не существует, поскольку на заре производители браузеров шли своим собственным путем.

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

Суть в том, что отступы, поля и границы некоторых элементов несовместимы между браузерами, при сбросе они все обнуляются, чтобы вы знали, с чего начинаете.

Есть меньшие сбросы, но они могут испортить элементы формы.

Существуют более крупные сбросы, которые сами по себе граничат с фреймворками, но именно из-за них у сбросов плохая репутация.

(кстати, многие разработчики полностью отвергают эту концепцию ТОЛЬКО из-за ее дрянности). Тот, который я использую, разработанный Дэном Шульцем, RIP, представляет собой безопасную золотую середину.

При четверти К он не настолько велик, чтобы можно было жаловаться на размер, и он не нацелен ни на что, что не требует перезагрузки или может быть из-за них испорчено. После перезагрузки я скрываю ХР как само собой разумеющееся.



HR существует для изменения темы, где текст заголовка нежелателен/неоправдан, а НЕ для того, чтобы просто «нарисовать линию по экрану». Поэтому в моем макете экрана такое значение обычно передается другими средствами, поэтому я скрываю HR. Это не значит, что я не использую их в HTML из-за их СЕМАНТИКИ.

Далее следует медиа-запрос, нацеленный только на устройства, ширина которых меньше 480 пикселей.

Два значения регулировки размера текста внутри него являются исправлением ошибок для ранних устройств iOS и Windows Embedded.

Я изолирую их в медиа-запросе по ширине, поскольку отправка их в разрешения OSX для настольных компьютеров может нарушить возможность масштабирования Safari на рабочем столе, даже несмотря на то, что это оказывает НУЛЕВОЕ влияние на масштабирование iOS Safari.

(Как обмануть этого сумасшедшего Яблока!)
HTML, тело Я установил для них высоту 100%, поскольку один из аспектов CSS заключается в том, что ни один элемент не может иметь высоту или минимальную высоту в процентах, если родительский элемент ее не имеет, за исключением HTML.

В обоих этих тегах высота рассматривается как минимальная высота, поэтому мы говорим, что BODY должно расширяться как минимум до высоты экрана.

Он все равно будет увеличиваться, если содержимое будет выше.

Это сделано для .widthWrapper, о чем я сейчас объясню.
тело -- Мне нравится вручную объявлять шрифт, используемый для большей части основного документа.

Я установил более высокую высоту строки, чем по умолчанию, поскольку 1) высота строки по умолчанию несовместима с разными браузерами и 2) она улучшает читаемость.

Хорошее практическое правило: используйте стек шрифтов без засечек для потокового контента, поскольку большинству экранных мультимедийных устройств не хватает разрешения для четкого отображения шрифтов с засечками.

(засечки улучшают разборчивость при печати, но могут поставить под угрозу ее на экране, забавная штука)
.widthWrapper -- Я установил переполнение только для того, чтобы убедиться, что любые поля или поплавки, которые мы можем использовать, не пытаются «выйти» из этого контейнера.

Максимальная ширина означает, что этот div может вырасти до этой ширины И НЕ ШИРО.

Таким образом, он все равно может сжиматься до размера экрана.

Это делается в EM (кратном текущему размеру шрифта), поэтому макет снова является ЭЛАСТИЧНЫМ и может расти, чтобы соответствовать контенту и предпочтениям пользователя. Минимальная высота 100% означает, что если контент короче экрана, .widthWrapper вырастет до высоты экрана.

Здесь это работает только из-за 100% высоты, объявленной в HTML и BODY. автоматические боковые поля центрируют его.

а затем границу.
#вершина -- прокрась это красиво.

Опять же, используя EM, чтобы он основывался на текущем размере шрифта, а не на пикселях, поэтому все динамически настраивается.

Поскольку весь текст центрирован, мы центрируем здесь, добавляем поле, чтобы отодвинуть первый раздел текста содержимого от объектов, и, конечно же, цвет и границу.
ч1 -- inline-block заставляет наш H1 сжиматься в соответствии с его содержимым.

Технически это позволяет ему отображаться внутри других элементов, но поскольку наш P останется блоком, он получит собственную строку и будет центрирован благодаря выравниванию текста по #top.

Отступы меньше, потому что EM основан на текущем размере шрифта, который, как вы можете видеть, я удвоил. Вы заметите, что я (большинство) всегда использую полное сжатое объявление шрифта.

Мне нравится видеть, что ТОЧНО установлено для лица и стиля, и, что более важно, вы не можете доверять правильному наследованию высоты строки.

Eсть ЛОЖЬ За последние шесть или семь лет циркулировало, что исключение метрики из высоты строки (например: line-height:1.5 будет наследоваться правильно, это ерунда.

Если вы измените размер шрифта, переопределите высоту строки.

ВСЕГДА.

и к тому времени, как вы наберете «font-size:200%; line-height:150%;», вы наберете почти столько же символов, сколько просто произнесете все сжатое свойство. ... и если на вашем хостинге для CSS включено сжатие gzip, он фактически становится меньше.

:/
#топ п -- Заполните его по всему периметру, отведите верхнюю часть, чтобы отодвинуть ее от H1. Ничего особенного.
ч1,
#топ п,
#первыйтекстовый раздел,
#второйтекстовыйраздел,
.тарелка,
.торцевая пластина
-- Я установил границу для всех этих элементов в одном удобном месте, чтобы вы могли быстро изменить или удалить ее из всех. Это также причина, по которой «миксины» в LESS/SASS/SCSS бессмысленны, если вы понимаете селекторы. SCSS - это ЕЩЕ ОДНА часть BS, с которой вы, вероятно, не сталкивались, но некоторые люди скажут вам использовать/делать это некомпетентная ерунда.
#первыйтекстовый раздел,
#второйтекстовый раздел
-- они оба имеют одинаковую ширину, половину максимальной ширины .widthWrapper, но я установил максимальную ширину 100%, чтобы они уменьшались по размеру экрана по мере необходимости.

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

Я объясню это в ближайшее время.
#firstTextSection поскольку он находится напротив левого края, я потянул его левую границу, чтобы он выглядел лучше.
#второйтекстовый раздел Я вставил это в 3em, размер шрифта которого по умолчанию в стандартной системе составляет 48 пикселей — не совсем те 40, о которых вы говорили, но соответствует размеру текста и удвоенной высоте строки, что является хорошим трюком для получения чистого согласованного текста.

ищу макет.

Также имейте в виду, что, поскольку это EM, оно НИКОГДА не будет фиксированным количеством пикселей, например, на рабочей станции, на которой я сейчас работаю, 3EM обеспечит 60 пикселей, а в моем медиацентре, настроенном на десятифутовый интерфейс, это будет 72 пикселей.
#firstTextSection p,
# SecondTextSection p
Я заполняю нижнюю часть моих параграфов, а затем заполняю их контейнер с трех других сторон, чтобы избежать головной боли с макетом, называемой «схлопыванием полей», которая может привести к выходу полей из родительского элемента или к сбою в применении фона. (FF Quantum только что повторно представил эту десятилетнюю ошибку, которую они исправили восемь лет назад в старых моделях. ВПЕРЕД, ПРОГРЕСС!). Маржа должна использоваться только после того, как отступы были израсходованы или они вам «нужны» за пределами границы, где вы не можете сделать это из родителя.
.plate, .endPlate -- эти два объекта имеют много общих свойств, поэтому я снова включаю их. (и опять же, кому нужны "миксины"? Не мне, не мне...). Displaylock принудительно помещает их в свои собственные строки, max-width заставит их сжиматься до нужного размера, если экран меньше, чем они есть, height:auto переопределяет значение HTML, чтобы сохранить соотношение сторон изображений, и снова и автоматическое поле с нижним полем, чтобы отделить их друг от друга.



(поскольку заполнение изображений сомнительно).
.торцевая пластина -- затем значения, которые РАЗНЫЕ -- убрав автоматическое поле справа, вы сдвинете его заподлицо с этой стороной, затем уничтожите боковую границу, как мы это сделали с первой текстовой областью. ... и это основной полужидкий эластичный макет рабочего стола/высокого разрешения.

Теперь нам нужно сделать его адаптивным для мобильных устройств.
максимальная ширина: 54em - Я добавляю ему пару дополнительных EM к размеру .widthWrapper как «фактор выдумки». Хорошее правило — добавлять один или два дополнительных EM в ваши медиа-запросы, чтобы они запускались раньше, поскольку измерения не всегда точны.

Лучше, чтобы он сработал до того, как он понадобится, чем если он случайно не сработает, когда это необходимо. Этот просто убивает границу .widthWrapper, поскольку, когда она находится на одном уровне с краями окна, нет реальной причины иметь ее там.
максимальная ширина: 32em -- внизу мы соприкасаемся с отступом на второй секции и их шириной, поэтому просто уберите боковые поля, опустите боковые отступы, чтобы освободить больше места, и уничтожьте боковые границы, чтобы они могли расширяться и заполняться.

всю ширину экрана. ... и вот, в двух словах, как это сделать. Подключите его к какому-нибудь мусорному программному обеспечению для проектирования и наблюдайте, как он почти мгновенно разваливается на куски вверх лицом вниз.

Серьезно, если вы ХОТИТЕ сделать это правильно, выкиньте этот мусор на обочину и найдите время, чтобы НАУЧИТЬСЯ.

В противном случае все, что вы делаете, это обманываете себя.
 

myframe


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 14, Jun 2024
  • #8
И ваш вопрос, и ваша методология ошибочны.

То, что вы пытаетесь сделать для макета, ни в коем случае не является хорошим веб-дизайном. Это видно из того факта, что вы ДУМАЕТЕ даже пикселями и элементами с фиксированной высотой.

Пиксели неэластичны, они не подстраиваются под размер шрифта браузера или ОС, который пользователь может изменить.

Вот почему нам говорят использовать % или EM для размера шрифта, и поэтому любые контейнеры с СОДЕРЖИМЫМ в них (он же текст) ТАКЖЕ должны иметь ширину (если таковая имеется), объявленную в EM. Таким же образом ваши контейнеры должны быть как минимум полужидкими.

Автоматическое расширение/сжатие по мере необходимости, чтобы вместить их содержимое, с максимальной шириной, чтобы не было трудно следить за длинными строками.

Объявление фиксированной ширины или процента ширины экрана — мусор. То, что вы возитесь с DIV, включая один для того, что явно является документом H1, не помогает делу.

СОДЕРЖИМОЕ диктует разметку, поэтому вам следует начинать с вашего контента или разумной копии вашего будущего контента ПЕРВЫМ в плоском текстовом редакторе, организуя его логически, как если бы HTML и макет даже не существовали.

Затем вы добавляете HTML к семантически (на данный момент без DIV или SPAN), чтобы сказать, что это такое, НЕТ как вы хотите, чтобы они выглядели.

ЗАТЕМ вы подгоняете эту разметку по своему желанию с помощью CSS, добавляя DIV и SPAN только там и по мере необходимости, как только вы израсходуете то, что можно объявить в семантических элементах.

Это называется прогрессивным улучшением, и именно с его помощью вы создаете доступные веб-сайты, которые постепенно деградируют.

Начинать возиться с внешним видом до того, как он у вас есть, это совершенно задело, и именно поэтому PSD-жокеи под заблуждением, что они «веб-дизайнеры», в лучшем случае не более чем невежественны, в худшем — кучка подлых мошенников.

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

Вы даже не размещаете ничего рядом, поэтому вам даже не нужны плавающие элементы! У вас есть H1 для заголовка, P для текста, связанного с заголовком, еще P для следующего текста, IMG, еще P, затем IMG.

Сгруппируйте их по DIV с классами или идентификаторами, чтобы указать, какие эти разделы ЯВЛЯЮТСЯ не такими, какими вы хотите, чтобы они выглядели, а затем расположите и стилизуйте их из своей ВНЕШНЕЙ таблицы стилей.

Поскольку style="" также является эпическим /FAIL/ в веб-разработке, его следует использовать только тогда, когда стиль помогает передать смысл - например, размер шрифта в облаке тегов или ширина столбцов в гистограмме.

В противном случае НЕ используйте это. НЕ объявляйте фиксированную высоту, НЕ объявляйте фиксированную ширину.

Вот где вы терпите неудачу.

Позвольте потоку сделать свое дело! Кроме того, ну... @kennedygitahi предложил бутхерню, и, ну... единственное, чему вы можете научиться из нее, это тому, как НЕ создавать веб-сайт.

Я бы посоветовал вам научиться правильно использовать HTML и CSS, ПРЕЖДЕ ЧЕМ вы попробуете неряшливый и полоумный ярлык, который бесит хорошие практики с орбиты.

Сделав это, вы поймете, насколько ошеломляюще тупыми на самом деле являются такие HTML/CSS-фреймворки, как bootcrap, w3.css и т. д. и т. п.
 

kron4eg


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно