Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 2
Регистрация: 26.11.2015
Сообщений: 33
1

Правильное постоянное расположение текста поверх картинки (пункты меню, bootstrap)

30.11.2015, 04:22. Показов 3987. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Товарищи, подскажите, пожалуйста, как будет более разумно с точки зрения кроссбраузерности и адаптивности сверстать меню, которое состоит из картинки и пунктов поверх неё.
Два моих варианта прилагаются. Второй как-то при уменьшении экрана выглядит стабильнее, вплоть до 768px, без @media всё равно не обойтись, но всё же... Буду признателен за ваши советы!
Вложения
Тип файла: rar boxer.rar (3.73 Мб, 1 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2015, 04:22
Ответы с готовыми решениями:

Текст поверх картинки bootstrap
По гуглил по данному слову ключу. В результате, нашел только советы игратся из относительным...

Увеличение картинки и ее расположение поверх остальных
PowerPoint 2010. На слайде расположены несколько картинок. Необходимо, чтобы картинка 1 плавно...

Провека текста на правильное расположение скобок
Дан файл, содержащий произвольный текст. Проверить, правильно ли в нём расставлены круглые скобки...

Расположение текста поверх изображения
подскажите как вставить текст в картинку ?)))

5
49 / 42 / 25
Регистрация: 18.11.2015
Сообщений: 279
30.11.2015, 10:31 2
Лучший ответ Сообщение было отмечено HellNHeaven как решение

Решение

Вот смотрите как можете реализовать, это один конечно из вариантов. На каждую из своих ячеек кидаете фоном 1 медаль.
Но чтоб поставить на фон разные медали, нужно задать списку разные классы и на отдельный класс делать свой background

HTML5
1
2
3
4
5
6
7
8
9
10
<div class="row">
    <div class="menu">
        <ul>
            <li class="medal"><a href="#">О тренере</a></li>
            <li class="medal1"><a href="#">Ученики</a></li>
            <li class="meda2l"><a href="#">Зал</a></li>
            <li class="meda3l"><a href="#">Медиа</a></li>
        </ul>
    </div>
</div>
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
* {
    box-sizing: border-box;
}
 
.row {
    max-width: 780px;
    margin: 0 auto;
}
 
.menu ul {
    width: 100%;
    list-style: none;
    display: table;
    padding: 0;
    margin: 0;
}
 
.menu ul li {
    width: 25%;
    display: table-cell;
    vertical-align: top;
    text-align: center;
}
 
.menu ul li a {
    padding: 4rem 1rem 1rem 1rem;
    display: block;
    border: 1px red solid;
    text-decoration: none;
}
1
0 / 0 / 2
Регистрация: 26.11.2015
Сообщений: 33
30.11.2015, 15:54  [ТС] 3
Попробовал таким образом, получилось вот что.
Полагаю нужно внутри каждого элемента меню создать блок, отцентрировать его по горизонтали, прижать к нижней части и туда вписывать текст.

HTML5
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
<!DOCTYPE html>
<html lang="en">
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="shortcut icon" href="boxer.ico">
 
    <title>Boxer</title>
 
    <!-- Стиль Bootstrap -->
    <link href="bootstrap.css" rel="stylesheet">
    <!-- Стиль страницы -->
    <link href="style.css" rel="stylesheet">
  </head>
 
  <body>
 
    <div class="container">
 
      <!-- Верхний блок-->
      <div class="Navbar.html navbar-default" role="navigation">
        <div class="container-fluid">
          <div class="row">
            
 
            <div class="col-lg-6">
                
                <!-- Меню -->
 
    <div class="menu col-lg-6">
        <ul>
            <li class="medal1"><a href="#">О тренере</a></li>
            <li class="medal2"><a href="#">Ученики</a></li>
            <li class="medal3"><a href="#">Зал</a></li>
            <li class="medal4"><a href="#">Медиа</a></li>
        </ul>
    </div>
 
                      <!-- /Меню -->          
 
                 <!-- Девиз -->
                <div class="container-fluid">
                <div class="row-fluid">
            <div class="centering">
                <div class="col-lg-12" id="deviz">
                    Философия <br />
                    Дисциплина <br />
                    Трудолюбие
                </div>
            </div>
            </div>
                </div> 
                <!-- /Девиз -->
 
            </div>   
            
            <!-- Фото шапки -->
            <div class="col-lg-6">
                
                <div class="col-lg-12 nav navbar-nav navbar-right">
                    <img src="images/bg-header.png" />
                </div>
 
            </div>
            <!-- /Фото шапки -->
 
        </div>
      </div>
    </div>
    <!-- /Верхний блок -->
 
  </div>
 
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  
</body>
</html>
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
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
* {
    box-sizing: border-box;
}
 
.row {
    max-width: 780px;
    margin: 0 auto;
}
 
.menu ul {
    width: 100%;
    list-style: none;
    display: table;
    padding: 0;
    margin: 0;
}
 
.menu ul li {
    width: 25%;
    display: table-cell;
    vertical-align: top;
    text-align: center;
}
 
.menu ul li a {
    padding:  5rem 1rem 1rem 1rem;
    display: block;
    border: 1px red solid;
    text-decoration: none;
}
 
.medal1 {
  background: url(images/medal1.png) no-repeat;
}
 
.medal2 {
  background: url(images/medal1.png) no-repeat;
}
 
.medal3 {
  background: url(images/medal1.png) no-repeat;
}
 
.medal4 {
  background: url(images/medal1.png) no-repeat;
}
 
#deviz {
    font: bold italic 2.5em Verdana bold;
    color: #9f0d0d;
    position: relative;
}
 
/*Выравнивание по центру вертикально и горизонтально*/
.container-fluid{
  height: 200px;
  display: table;
  width: 100%;
  padding: 0;
}
 
.row-fluid {
  height: 100%; 
  display: table-cell; 
  vertical-align: middle;
  text-align: center;
}
 
.centering {
  float:none;
  margin:0 auto;
}
/*Выравнивание по центру вертикально и горизонтально*/
Миниатюры
Правильное постоянное расположение текста поверх картинки (пункты меню, bootstrap)   Правильное постоянное расположение текста поверх картинки (пункты меню, bootstrap)  
0
49 / 42 / 25
Регистрация: 18.11.2015
Сообщений: 279
30.11.2015, 16:01 4
Лучший ответ Сообщение было отмечено HellNHeaven как решение

Решение

Ну в первую очередь, высоту ячеек нужно задать на высоту медалей, которые вы отображаете как фон. Во вторую очередь, вы должны указать background-position: top center; тогда медали на фоне станут посередине.
То что у вас на первом скрине сжатое меню, скорее всего или блок, в котором оно лежит слишком короткий или сжимается с правой стороны паддингом.
1
0 / 0 / 2
Регистрация: 26.11.2015
Сообщений: 33
30.11.2015, 17:50  [ТС] 5
Благодарю, это, пожалуй, оптимальный и довольно простой вариант. Я предполагал, что будет правильнее вырезать медальку фоном для каждого элемента. Да и с rem работать проще ведь, тем более что совместимость с IE 8- можно решить двумя способами. Что-то у меня совсем туго с мыслью, тяжелая ночка выдалась... Ой, max-width только на 100% поменяю, что бы "О Тренере" растянулось нормально при высоком разрешении
Миниатюры
Правильное постоянное расположение текста поверх картинки (пункты меню, bootstrap)  
0
49 / 42 / 25
Регистрация: 18.11.2015
Сообщений: 279
30.11.2015, 18:10 6
Я использую em, rem уже по привычке, так что вы поступайте как вам будет лучше. 25% ширины поставил чтоб было все равномерно. Можно не ставить такую ширину, а в ссылках, поставить паддинги по бокам по 24px, посмотрите что получится, не понравится, вернете %
0
30.11.2015, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2015, 18:10
Помогаю со студенческими работами здесь

Сделать картинки в слайдере ссылками на пункты меню
Можно ли сделать так чтобы несколько картинок в слайде были ссылками на 1 пункт меню в наши работы...

(bootstrap 4) Меню + картинки
Здравствуйте! У меня задание сверстать на бутстрапе сайт https://splandeed.com/s/thomas-jenny ...

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

Меню поверх картинки
Приветствую. Есть сайт на вордпрессе. Подключен плагин для отображения фотогалерей (lightbox) и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru