Deutsch

адаптивный сайт

1218  1 2 3 все
Brandus знакомое лицо17.09.16 13:27
Brandus
17.09.16 13:27 

привет всем , решил свой старый сайт переделать по новой , и сделать его резиновым так сказать ,

карказ поставил, все сжимается , все работает ок ,

но у меня возникла идея сделать так чтобы левая колонка была статистическая и имела размер гдето 12 EM

и там будет лого фирмы висеть , чтобы оно не сжималось ,а было всегда одним размером ,

вот я попытался сделать и не получается , при сжатии правая сторона лезет под левую , что я не так сделал ??


каркас такой

<body>
<div class="wrapper">


<div class="header1">Kopf1</div>

<div class="header2">Kopf2</div>

<div class="menue"> Menü</div>

<div class="nav"> SIDEBAR</div>

<div class="content">Inhalt</div>

<div class="footer">Footer</div>

</div>
</body>


цсс

body {
background-color: #C4C6C0;
}



.wrapper {
max-width: 960px;
margin: 0px auto;
background-color: #F3F6F7;
margin-top: 20px;
padding: 10px;
}



.header1 {
width:12em;
height: 160px;
background-color: #01DF65;
margin-bottom: 10px;
float: left;
}



.header2 {
width: 79%;
height: 160px;
background-color: #01DF65;
margin-bottom: 10px;
float: right;
}



.menue {
width: 100%;
height: 45px;
background-color: #FAF02F;
margin-bottom: 10px;
float: left;
}
.content {
width: 79%;
height: 520px;
background-color: #46CDE7;
float: right;
margin-bottom: 10px;
}






.nav {
width: 20%;
height: 520px;
float: left;
background-color: #FACC2E;
margin-bottom: 10px;
}



.footer {
clear: both;
flex: 0 0 auto;
height: 50px;
background-color: #F4CAD1;

#1 
Vovan(ator) коренной житель17.09.16 17:27
Vovan(ator)
NEW 17.09.16 17:27 
в ответ Brandus 17.09.16 13:27, Последний раз изменено 17.09.16 17:41 (Vovan(ator))

Идея может и не плохая (сама задумка, я имею в виду).

Но принцип работы и подход, "двойка... выйди вон..." улыб (шутка)


Теперь конструктивная критика.

1) если Вы хотите щирину колонки сделать с фиксированными размерами,

то и надо ширину задавать в жёстких единицах.

.nav {
width: 12em; /* ну или в пикселях, вместо width: 20%;*/

...


2) если оставить всё как есть, и выставить постоянную ширину левой

колонки, то при сжимании до мобильной версии, только эта колонка и останется.

Для основного содержания и места не останется.


3) учтя пункт 2, есть смысл сначала сделать набросок для мобильной версии,

а потом смотреть, с какой ширины есть смысл перестранивать дизайн в две колонки.


Или, если же этот сайт должен только в десктопном виде быть, то нужно установить рамки,

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


при сжатии правая сторона лезет под левую , что я не так сделал ??

Вообще, при перерасчёте в проценты, нужно учитывать,

что все бровзеры по разному реагируют на border, margin и padding.

А чтоб всё сделать более-менее одинаково (одинаковые исходные параметры),

используют Normalize.css: https://necolas.github.io/normalize.css/


Ну и при перерасчёте в проценты ширин, нужно собственные border, margin и padding тоже брать во внимание.

20% и 79% не всегда достаточно, чтоб всё перекрыть.

Возможно border, margin и padding перебирают отпущенный им 1% (во всяком случае от определённых размеров сужения.)


#2 
regrem патриот17.09.16 21:44
NEW 17.09.16 21:44 
в ответ Brandus 17.09.16 13:27, Последний раз изменено 17.09.16 22:10 (regrem)


В общем всё ясно. Всё решается парой строчек скриптов:

Измеряется ширина контейнера - это будет базовой величиной, от неё везде и во всём плясать

Потом измеряется правый край дива Kopf1 (разницы нет статический он или нет).

Это и будет левым краем дива Kopf2, ну можно и интервал поставить между дивами.

В диве header2 убрать float: right. И вообще переписать коды, чтобы абсолютными цифрами и не пахло.

Ну и опять понадобятся скрипты. Наверное придётся задавать и падинги ссылок в относительных единицах.

В общем несколько функций, расчитывать размеры и задавать динамически стили - DOM!

#3 
Vovan(ator) коренной житель17.09.16 22:35
Vovan(ator)
NEW 17.09.16 22:35 
в ответ regrem 17.09.16 21:44
Ну и опять понадобятся скрипты. Наверное придётся задавать и падинги ссылок в относительных единицах.

Вау улыб

Запспокрожец на ракетном двигателе создавать будем???


Всё гениальное просто.

Чистый HTML и CSS и никаких скриптов.

Код действительно нужно переделать,

логику поменять и свойства в CSS правильно прописать.

Но колесо занова изобретать в принципе нет необходимости.

#4 
regrem патриот17.09.16 23:36
NEW 17.09.16 23:36 
в ответ Brandus 17.09.16 13:27, Последний раз изменено 17.09.16 23:52 (regrem)


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

Но делает ли кто такую статичную колонку. В некоторых пределах и её надо изменять.


* В диве header2 убрать float: right , width. Классы поменять на дивы. ...

#5 
regrem патриот17.09.16 23:46
NEW 17.09.16 23:46 
в ответ Vovan(ator) 17.09.16 22:35
Всё гениальное просто.
Чистый HTML и CSS и никаких скриптов.

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

Но иногда есть необходимость сильно использовать скрипты и динамически задавать стили.


#6 
Sergo2008 старожил18.09.16 09:02
Sergo2008
NEW 18.09.16 09:02 
в ответ Brandus 17.09.16 13:27

Может поможет решить вопрос, там как раз про резиновую вёрстку с фикс колонками.

#7 
Vovan(ator) коренной житель18.09.16 11:24
Vovan(ator)
NEW 18.09.16 11:24 
в ответ regrem 17.09.16 23:46, Последний раз изменено 18.09.16 11:28 (Vovan(ator))
Может быть в простейших случаях, как в нашем.

Я уже делал и передлывал сайты и адаптировал шаблоны различной сложности и переплетённости дивов,

но всегда обходился стандартными средствами HTML и CSS.

Зная как оно работает, можно составить любой дизайн не используя тяжёлую аритилерию,

и при этом поставить все кубики с точностью до пикселя.


Но иногда есть необходимость сильно использовать скрипты и динамически задавать стили.

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

или динамической выдачи каких-либо графиков или статистик.

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

Но там не было других вариантов.


В принципе, гвоздь можно и поленом заколотить, можно и кувалдой,

но молотком вроде как практичнее и удобнее получается.

HTML и CSS, очень мощные и удобные инструменты.


К стати, Sergo2008 предложил этажом выше ссылку.

Чтоб потренироваться или идеи пособирать как решить проблему ТС, не так уж и плохое упражнение.

#8 
Brandus знакомое лицо18.09.16 15:11
Brandus
NEW 18.09.16 15:11 
в ответ Vovan(ator) 17.09.16 22:35

ну не надо пугатся , цвета я выставил такие, чтобы было просто удобно видеть границу дивов , потом естественно , все будет в другом цвете ,

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

просто я не такой большой спец в этом , поэтому и попросил помоши зала

#9 
Vovan(ator) коренной житель18.09.16 15:26
Vovan(ator)
NEW 18.09.16 15:26 
в ответ Brandus 18.09.16 15:11
ну не надо пугатся , цвета я выставил такие, чтобы было просто удобно видеть границу дивов

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

(помоему я это уже писал выше).


И было бы не плохо определиться с тем, какой дизайн Вы хотите иметь.

как написано в теме, "адаптивный" и как пишется в самом вопросе "резиновый",

это немного разные вещи. Оба немного устарели.


Сейчас пользуется популярностью "Отзывчивый дизайн"

Здесь можно прочитать о их различиях: http://wseweb.ru/diz/adaptivny-dizain.htm

Если Вы хотите оставить всё как есть, резиновый дизайн, только левую колонку сделать с постоянными размерами,

то решение я написал в моём первом ответе. Просто выставить фиксированные размеры в левой колонке.

#10 
regrem патриот18.09.16 16:40
NEW 18.09.16 16:40 
в ответ Brandus 18.09.16 15:11, Последний раз изменено 18.09.16 16:49 (regrem)
Я думаю что не стоит тут играть скриптами …

Может тогда вообще и без CSS ?

Ставть таблицу с 2 ячейками и всё.

Да ещё надо убрать кое-что из дива header2 И показывает это так:



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

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

#11 
Vovan(ator) коренной житель18.09.16 16:50
Vovan(ator)
NEW 18.09.16 16:50 
в ответ regrem 18.09.16 16:40
Ставть таблицу с 2 ячейками и всё.

не в обиду, но эту технику уже лет как 10 можно сказать никто не использует для дизайна.

- не удобная и не практичная

- много лишнего кода

- никакой динамики, (кроме как разъезжаться в тороны)

- с точки зрения семантики, таблицы тоже имеют другие назначения

- поисковики их тоже не особо любят

ну и много ещё чего говорит против использования таблиц для дизайна.


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

#12 
regrem патриот18.09.16 17:05
NEW 18.09.16 17:05 
в ответ Vovan(ator) 18.09.16 16:50, Последний раз изменено 18.09.16 17:11 (regrem)

Вот почему я и добавил в посте:

Использование таблицы я привел больше для справки, я ими не пользуюсь

Я пользуюсь в основном скриптами, я пример вверху привёл, но что-то показался кому-то крутым, а сейчас другая крайность )))

Но и таблицы никто не отменял и иногда можно их использовать, особенно для наладки.

#13 
Vovan(ator) коренной житель18.09.16 17:35
Vovan(ator)
NEW 18.09.16 17:35 
в ответ regrem 18.09.16 17:05

Предыдущее сообщение я написал ещё до того, как Вы его исправили улыб

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


Но и таблицы никто не отменял и иногда можно их использовать, особенно для наладки

Таблицы действительно никто не отменял.

Но всё нужно использовать по назначению.

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

У них и свойства для этого больше подходят.

Их раньше для дизайна тоже использовали.

И тогда это было очень удобно,так как другого варианта не было.

А CSS поддерживались только частично.

Сейчас всё поменялось сильно.

#14 
regrem патриот18.09.16 17:42
NEW 18.09.16 17:42 
в ответ Brandus 17.09.16 13:27, Последний раз изменено 18.09.16 17:55 (regrem)

Попробуй:


.header1 {

position:relative;

width:12em;

height: 160px;

background-color: #01DF65;

margin-bottom: 10px;

float: left;

}

.header2 {

height: 160px;

background-color: #01DF65;

margin-left: 12.2em;

margin-bottom: 10px;

}




Кажется работает.


#15 
Brandus знакомое лицо18.09.16 22:04
Brandus
NEW 18.09.16 22:04 
в ответ Brandus 18.09.16 15:11, Последний раз изменено 18.09.16 22:20 (Brandus)

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


#16 
Brandus знакомое лицо18.09.16 22:05
Brandus
NEW 18.09.16 22:05 
в ответ regrem 18.09.16 17:42

судя по фото должно работать , спасибо за совет , завтра буду тестировать

#17 
Brandus знакомое лицо18.09.16 22:07
Brandus
NEW 18.09.16 22:07 
в ответ Vovan(ator) 18.09.16 16:50

насчет таблиц , это действительно так , это устаревшая тезника , давно ее никто не использует для дизайна , а только по назначениб , если нужны таблицы


#18 
Brandus знакомое лицо18.09.16 22:08
Brandus
NEW 18.09.16 22:08 
в ответ Brandus 18.09.16 22:05

а какая будет разница , если я изменю в коде класс на див ? что изменится ?


#19 
Brandus знакомое лицо18.09.16 22:17
Brandus
NEW 18.09.16 22:17 
в ответ Vovan(ator) 18.09.16 15:26

я прочитал и я именно это и хотел , мрото не правильно выразился

я хочу именно такой

Отзывчивый или responsive жизайн сайта


#20 
1 2 3 все