X

Как создать адаптируемый шаблон

Сейчас на сайте важно иметь такой дизайн сайта, который бы правильно отображался как на больших мониторах, так и на мобильных устройствах. Это значительно повышает посещаемость сайта, т.к. нет большого желания читать сайт, если шаблон его «разъехался»(блоки находятся не на своих местах) при маленьком разрешении например.

Пример шаблона можете увидеть здесь. Можете его также увеличивать, уменьшать и вы увидите как он изменяется:

Посмотреть примерСкачать



HTML часть

Мы будем использовать HTML5, потому что в пятой версии есть такие элементы как header, footer, nav и т.д. Также подключим файл reset.css для того чтобы сбросить все стили в разных браузерах и начинать с чистого листа.

Весь контент находится в <div id="wrapper"> . Затем внутри идет заголовок с подзаголовком, слоган и навигация. Следующим блоком располагаются статьи и справа навигация. Затем блок это блок «Об авторе» и последний блок с копирайтами. В структуре нет ничего необычного, обычная страница html:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<div id="wrapper">
    <header>
        <h1><a href="#">Название сайта</a></h1>
        <h2>Подзаголовок и слоган сайта</h2>			
        <nav>
            <a href="#">Главная</a>
            <a href="#">Об авторе</a>
            <a href="#">Портфолио</a>
            <a href="#">Блог</a>
            <a href="#">Контакты</a>
            <div class="clearfix"></div>
        </nav>	
    </header>
    <section id="main-content">
        <div id="featured">
            <h3>Будущие записи:</h3>
                <p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
                   ....
                <a href="#">Читать дальше →</a></p>
        </div>
        <hr>
        <div id="latest">
            <section class="left-col">
                <h3>Последние записи:</h3><br>
                <h4><a href="#">Заголовок 1</a></h4>
                <p>Vivamus sagittis lacus vel augue
                   ....
                <a href="#">Читать дальше →</a></p>
                <h4><a href="#">Заголовок 2</a></h4>
                <p>Vivamus sagittis lacus vel augue
                   ....
                <a href="#">Читать дальше →</a></p>
                <h4><a href="#">Заголовок 3</a></h4>
                <p>Vivamus sagittis lacus vel augue
                   ....
                <a href="#">Читать дальше →</a></p>
            </section>
            <aside class="sidebar">
                <h4><a href="#">Архив</a></h4>
                <ul>
                    <li><a href="#">Июль 2013</a></li>
                    <li><a href="#">Август 2013</a></li>
                    <li><a href="#">Сентябрь 2013</a></li>
                </ul>
                <h4><a href="#">Категории</a></h4>
                <ul>
                    <li><a href="#">Статьи</a></li>
                    <li><a href="#">Уроки</a></li>
                    <li><a href="#">Новости</a></li>
                </ul>
                <h4><a href="#">Социальные сети</a></h4>
                <ul>
                    <li><a href="#">Facebook</a></li>
                    <li><a href="#">Twitter</a></li>
                    <li><a href="#">Вконтакте</a></li>
                    <li><a href="#">Google+</a></li>
                </ul>	
            </aside>
        </div>
        <div class="clearfix"></div>
        <hr>
        <div id="about">
            <h3>Об авторе</h3>
            <p>Integer posuere erat a ante venenatis
               ....
            </p>
        </div>	
    </section>	
    <hr>
    <footer>
        <p>© 2013 - Адаптируемый шаблон</p>
    </footer>		
</div>

Вот как сейчас выглядит наша страница:



CSS часть

Зададим для body легкий серый фон:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
body { 
    background: #F9F9F9; 
    color: #222; 
    font-family: serif; 
    font-size: 16px; 
    -webkit-transition-property: font-size;
    -moz-transition-property: font-size;
    transition-property: font-size;
    -webkit-transition-duration: 0.5s, 0.5s;
    -moz-transition-duration: 0.5s, 0.5s;
    transition-duration: 0.5s, 0.5s; 
    -webkit-transition-timing function: linear, ease-in;
    -moz-transition-timing function: linear, ease-in; 
    transition-timing function: linear, ease-in; 
}

Весь контент находится в блоке с идентификатором #wrapper. Поэтому ему необходимо задать такую ширину, чтобы она автоматически выставлялась при изменении разрешения экрана.

1
2
3
4
5
6
7
8
#wrapper  { 
    margin: 10px auto; 
    max-width: 980px; 
    width: 90%; 
    background: #fff; 
    padding: 10px 0; 
    border:1px solid #CDCDCD
}

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


Затем идет основной блок стилей:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
h1 {
    font-size: 90px; 
    font-family: serif; 
    line-height: 75px; 
    padding: 10px; 
    -webkit-transition-property: font-size;
    -moz-transition-property: font-size;
    transition-property: font-size;
    -webkit-transition-duration: 0.5s, 0.5s;
    -moz-transition-duration: 0.5s, 0.5s;
    transition-duration: 0.5s, 0.5s; 
    -webkit-transition-timing function: linear, ease-in;
    -moz-transition-timing function: linear, ease-in; 
    transition-timing function: linear, ease-in;  
}
 
h1 a:hover { 
    text-decoration: none; 
    color: #3CC117;
}
 
h2 { 
    font-family: serif; 
    font-size: 18px; 
    padding: 10px; 
    -webkit-transition-property: font-size;
    -moz-transition-property: font-size;
    transition-property: font-size;
    -webkit-transition-duration: 0.5s, 0.5s;
    -moz-transition-duration: 0.5s, 0.5s;
    transition-duration: 0.5s, 0.5s; 
    -webkit-transition-timing function: linear, ease-in;
    -moz-transition-timing function: linear, ease-in; 
    transition-timing function: linear, ease-in;
}
 
h3 { 
    font-family: serif; 
    font-size: 30px; 
}
 
h4 { 
    font-family: serif;
    padding: 3px; 
    margin: 5px 0 0 0; 
}
 
h4 a {
    text-decoration: underline; 
}
 
nav { 
    background: #222; 
    padding: 0; 
    margin: 10px 0;
}
 
nav a { 
    color: #F9F9F9; 
    display: block; 
    float: left; 
    padding: 10px; 
}
 
nav a:visited { 
    color: #f9f9f9; 
}
 
nav a:hover { 
    text-decoration: none; 
    background: #23A000; 
}
 
nav a:active { 
    position: relative; 
    top: 0; 
}
 
.left-col { 
    width: 70%; 
    float: left; 
}
 
.left-col p a {
    color:#277D0F;
}
 
.left-col p a:hover {
    color:#37B215;
}
 
.sidebar {
    width: 20%; 
    float: right;
    margin-bottom: 10px; 
    -webkit-transition-property: width;
    -moz-transition-property: width;
    transition-property: width;
    -webkit-transition-duration: 0.5s, 0.5s;
    -moz-transition-duration: 0.5s, 0.5s;
    transition-duration: 0.5s, 0.5s; 
    -webkit-transition-timing function: linear, ease-in;
    -moz-transition-timing function: linear, ease-in; 
    transition-timing function: linear, ease-in;
}
 
.sidebar h4 a {
    color:#000;
    text-decoration:none;
}
 
.sidebar h4 a:hover {
    color:#072100;
    text-decoration:none;
}
 
#featured {
    padding: 20px; 
}
 
#latest	{
    padding: 20px; 
}
 
#about {
    padding: 20px; 
}
 
p { 
    padding: 0 5px 0 5px; 
}
 
ul { 
    list-style: none; 
}
 
ul li { 
    margin: 0 5px; 
}
 
footer {
    padding: 5px; 
}

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


Для того чтобы сайт правильно отображался для различных браузеров с разными разрешениями, мы будем использовать файл CSS3 Media Queries, подключая файл media-queries.css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@media screen and (max-width: 478px) {
    h1 { 
        font-size: 70px; 
        padding: 1px; 
    }
 
    h2 { 
        font-size: 13px; 
        padding: 1px;
    }
 
    body { 
        font-size: 13px; 
    }
}
 
@media screen and (max-width: 740px) {
    .left-col { 
        width: 100%; 
    }
 
    .sidebar { 
        width: 100%; 
    }
}
 
img {
    max-width: 100%;
    height: auto;
    width: auto\9; /* ie8 */
}

Примерно так будет выглядеть данный шаблон на мобильных устройствах:



Выводы

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

Успехов!

Источник: onextrapixel.com

Категории: CSS3