В общем первый раз мне пришлось верстать крупный лендинг с нуля... Стомиллионов раз до этого занимался правками и мелкими лендингами, юзаю консоль хрома... и все такое... и думал что более менее знаком с версткой а оказалось что нет =) не знаком Встретил туевухучу проблем на самом начале написания с чистого листа - пришлось прописать всем h1-6, p, hr и прочим штукам margin 0 так как их margin отталкивали мои блоки друг от друга - намучился с картинками. Каждый раз их нужно впихивать в дивы определенной ширины а картинкам задавать 100%? - отсюда выплывает проблема с "придумыванием классов" для div img, так как таких дивов у меня в лендинге до-хре-на. и прочее... Короче верстка мне не нравиЦа, все куда то плывет, другое дело рнр - или работает или нет )))
А в чем заключается вопрос?)) --- Добавлено --- --- Добавлено --- По требованиям нельзя использовать bootstrap? --- Добавлено --- Присмотрись к css grid and flex
Это Вы зря. Верстка- очень занимательное занятие. Просто, видимо, не умеете ее "готовить" Овладейте фреймворком bootstrap, там все придумано за Вас + получите современную верстку с адаптивностью под мобильные девайсы, что на данный момент актуально по умолчанию
флекс выручает часто hr а вот Код (CSS): img { max-width:100%; height:auto; } .container-to-img { margin-left: auto; margin-right: auto; width: 300px; height: 150px; border: 1px solid black; } Спойлер --- Добавлено --- что не так? почему телега уходит за пределы дива?
Тут навено надо исходить от ширины или высоты родительского блока, и задать для изображения высоту или ширину 100%. Сложно дать совет, бывает разные случаи, с версткой надо долго играться пока не заработает как надо).
попробуй прямо в инструментах разработчика задать высоту для изобржаения телеги 100% а для родителя явно задай высоту нужную. --- Добавлено --- Ширину задай максимально возможную, чтобы больше нужной ширины не было. --- Добавлено --- Или убери вообще.
Сейчас увидел стили твои. Задай для изображения высоту 100% не должен выходиь за пределы. --- Добавлено --- И да, подними все в песочнице) помогут быстрее).
https://jsfiddle.net/qx95zkt2/ --- Добавлено --- задал высоту 100%, и теперь не работает горизонтальное выравнивание
@Taktreba, т.е. не заполняется? Ну так и должно быть. Или по высоте надо исходить или по ширине, или под эти блоки заранее готовить картинки с нужными размерами.
В первую очередь ошибка любого новичка в том, что он "упирается" в частности и не видит всю картину целиком, так не научиться. Выдергивание отдельных блоков и стилей приведет только к "костылям" Верстка лендинга, практически любого занимает час - два при умелом подходе. И это самое простое. Что же будет когда появятся сложные проекты...
совершенно верно и тогда повторюсь! =) Встретил туевухучу проблем на самом начале написания с чистого листа - пришлось прописать всем h1-6, p, hr и прочим штукам margin 0 так как их margin отталкивали мои блоки друг от друга - намучился с картинками. Каждый раз их нужно впихивать в дивы определенной ширины а картинкам задавать 100%? - отсюда выплывает проблема с "придумыванием классов" для div img, так как таких дивов у меня в лендинге до-хре-на. сейчас уже понял что всем картинкам нужно придумывать обертку, в данный момент на лендинге их штук 20 все переделываю вы просто как то прокомментируйте (если есть желание) то что я написал выше, и если мне что то окажется полезным, я это запомню
Тебе написали: перенеси в fiddle весь код страницы и связанные файлы чтобы она выглядела как на скриншоте, а не огрызки. С этого начнется решение твоей проблемы.
Я понял, что тебе надо все делать с нуля и без сторонних библиотек, но может пригодится https://www.w3schools.com/Bootstrap/trybs_theme_company_full.htm#about И исходный код https://www.w3schools.com/Bootstrap/tryit.asp?filename=trybs_theme_company_complete_animation
Опыт сын ошибок трудных. --- Добавлено --- В общем случае, не спеши портить то что есть, чтобы решить частный случай! Например, если марджины заголовков "вылезают" за пределы родительских секций, может быть стоит задать паддинг этих самых секций чтобы отжать заголовки от границ?! Заголовки без отступов выглядят, мягко говоря, непрофессионально. Я не силён в вёрстке, но сразу вижу любительскую верстку по двум-трём признакам: отступы, палитра, шрифты и начертания. У любителя нет системы, всё делается случайно: захотел убрать промежутки между секциями — убил отступы везде. Увидел белое-на-белом — воткнул билять синий и т.д.
Так, попробую побыстрому и с начала... Итак... сначала формируешь сам блок страницы (обертку всего кода лендинга) к примеру Код (Text): <div class="container"> ... </div> и пропишем ему класс (пока сделаем фиксированную верстку) Код (Text): container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; width: 1240px; } теперь внутрь этой конструкции загоним контейнер контента (он может неоднократно повторяться на странице... то есть это определенная отдельная часть... к примеру 1 экран лендинга) Код (Text): <div id="content">... </div> и стили для него Код (Text): #content { min-height: 600px; width: 100%; } Ну вот... главное (каркас страницы) у нас готово... теперь мы можем заняться контентом пишем там и заголовки, ссылки и текст и еще всяку лабуду... при этом заблоговременно прописав заголовкам свои стили (учитывая что H1 и H2, должны быть в единственном экземпляре!!! (иначе SEOшники Вас вздернут, как предателя продвижения) Код (Text): h1, h2, h3, h4, h5, h6 { color: #444; } h1 { font-size: 33px; } h2 { font-size: 27px; } h3 { font-size: 21px; } h4 { font-size: 15px; } h5 { font-size: 12px; } h6 { font-size: 10.2px; } a { color: #23a1d1; } a:hover { text-decoration: none; } Вы, конечно скажете.... ты все не о том, а где же картинки? я же спрашивал не о том... а вот и про них))) итак... код картинок на сайте выглядит примерно вот так Код (Text): <div class="image"><img src="картинка.jpg" alt="" title="" class=""></div> и что...блин.. скажешь ты... чем ты, дурень мне помог? я и так все знаю.... но не будем торопиться с выводами и давай смотреть далее снова пишем стили Код (Text): .image { text-align: center; } .image img { margin-left: auto; margin-right: auto; vertical-align: middle; border: 0; } блииииин.... ну ты же не о том!!! ах ха... именно о том... потому что мы прописали общие псевдоклассы для всего сайта дабы не ломать башку и писать код для каждого блока... и вот... мы добрались до картинок... как же прописать им общие стили...дабы не кривились? а вот так Код (Text): .img-responsive { display: block; max-width: 100%; height: auto; } хм... Паша, да ты гонишь... в коде нет класса img-responsive... ))) и правда не было бы...если бы не пять хитрых строчек кода в подвале сайта Код (Text): <script> $('img').each(function() { $(this).addClass('img-responsive'); }); </script> которые присвоют любой картинке этот класс или добавит, если у картинки есть еще какой то свой уникальный (для вывертов и выкрутасов с определенной картинкой... ну например помещенную в карусель) а теперь просто попробуй))) я думаю поняв принцип рассмотрения проекта в целом от большего к меньшему, ты поймешь насколько все просто при кажущейся сложности. з.ы. используя bootstrap , конечно все в разы еще проще... но пока просто показал как работать "топором" ну и если пригодиться, тебе в закладочки
@paschaopencart, Паша, мне кажется, это не то что ему нужно)). Он задаст обратно для родителя Img фиксированную высоту и все пропало, шеф! --- Добавлено --- А в подвале это выглядит как костыль) можно сразу этот класс прописывать для img).
поверь мне, что не всегда удасться прописать... забыл по невнимательности, пропустил.... да много ньюансов бывает а нахуа это делать? я же дал пример стилей в процентном соотношении... все же остальное сформируется за счет padding и margin + и даже если задать фиксированную высоту родительскому блоку (что будет глупостью), то ни чего не пропало))) просто картинка сресайзится в соответствии с указанной высотой... проверь на досуге)))) а скрипт - не костыль... а объединение определенных элементов сайта в одну группу с единым правилом p.s. Можно, конечно выдать готовый код/решение... но понимание придет только когда каждый знак в коде прописать самостоятельно... копипаст не всегда панацея...
А что помешает то, взял да и прописал). Как нафига? Ну я хочу чтобы в определенном контейнере, картинки не были выше 300px). Не суть в процентах или указывать или в пикселях Есть блок main его дочерные блоки images и в этих боках по картинке img Задал для главного блока height: 300px; дочерные наследуют И картинки тоже). Тут да, картинка не вылезет никуда). Но он хочет чтобы и не вылезала и чтобы заполняла. Тут уже наверно готовить картинки надо В твоем случае будет совсем не то. Не вижу чтобы у тебя где то с тилях прописан overflow: hidden; ) Ну я ж о том, что можно просто взять и прописать нужный класс к элементу. Одно дело. если его нужно менять, в этом случае можно прибегать к js)
объясню... пока у тебя нет админки для лендинга... ты пишешь все ручками, но достаточно к лендингу прикрутить админку и использовать текстовой менеджер... к примеру Ckeditor... и все что ты прописал ручками будет иметь этот класс... а то что подгрузиться из менеджера на фронтед этого класса иметь не будет - он его просто не добавляет... опять в режиме кода править и дописывать? долго, нудно, неудобно... ну коль на то пошло... не использовать скрипт вообще, а прописать напрямую... смысл от этого не поменяется)))) понятно что я уже давно смотрю шире и дальше... видимо дурная привычка))) ога... не прописал, а надо бы))) сорри... просто накидывал на коленке и не все учел и прописал... просто хотел быстро донести сам принцип... но сам же понимаешь, что остальное дело техники и я дал только каркас... а не предоставил готовый код лендинга... я выше написал, что данный скрипт не только присваивает, но и дополняет уже существующие классы, то есть если где то очень хочется к изображению прописывается его уникальный класс и для него пишется уникальный стиль Код (Text): <div class="image"><img src="картинка.jpg" alt="" title="" class="unicum"></div> к примеру может получиться так на выходе Код (Text): <div class="image"><img src="картинка.jpg" alt="" title="" class="unicum img-responsive"></div> Код (Text): .unicum { max-height: 300px }
Да, понимаю, просто это все его больше мне кажется запутало)). Я про этот конкретный случай) тут не нужно городить js чтобы добавить стили). Да, наверно все так. Но главное не выходить за рамки конкретной задачи, а то можно погрязнуть в новых и новых деталях, которые придется предусматривать )) Вообще я бы на месте @Taktreba просто взял какой-нибудь лендинг и переделал под себя. Учиться делать без сторонних библиотек конечно надо, и нужно, но когда ты выполняешь заказ и сроки сжатые нужно взять готовое и быстро выполнить поставленную задачу. А потом уже продолжать делать без этих фреймворков ту же задачу, в целях обучения. --- Добавлено --- Одно дело если заказчик хочет без библиотек, тут уже ясно что и как.
согласен. но при таких знаниях на данный момент я не думаю что он делает именно заказ. А для обучения мы общими усилиями накидали ему материала для изучения