Псевдокласс :last-child задает стилевое оформление последнего элемента своего родителя.
А у вас идет последним элемент с id deep_right. Чтобы применился .product он должен быть последним элементом в своем родителе.
P.S. В .box1 у вас прописан display: inline-block; в то время как в .price указан float: left;
float делает элемент блочным, поэтому inline-block не работает и соответственно он тут лишний.
Когда не знал как работать с SVG, для подобной задачи использовал этот ресурс. Загружаете изображение и поверх него чертите области этажей. В итоге получаете сгенерированный код map area.
Но такие вещи лучше делать через SVG.
Для SVG есть онлайн редактор . Поступаете аналогичным способом, загружаете изображение, создаете новый слой и на нем чертите области. Правда лично не пользовался.
Оберните все содержимое страницы в блок, кроме модальных окон, например wrapper.
Если используете плагин, в callback открытия пишите добавление класса .blur к обертке wrapper.
На закрытие удаляете и все.
Firebug все верно показывает, [div] растягивается на всю ширину контейнера, у вас там похоже заголовок и [p] у которых есть margin(внешний отступ) по умолчанию, он не растягивает div.wrapper по высоте.
wrapper в данном случае имеет те же размеры что и дочерний блок, задайте ему например overflow: hidden; и размеры изменятся.
.header .contacts .phone--big
или
.header .contacts .phone--large
Правда тут придется просто добавить этот класс через запятую к старому чтобы старые стили применить, а ширину уже отдельно написать.
По хорошему лучше делать отдельным классом, типо class="phone phone--big"
Если есть возможность убрать из каскада .contacts, уберите везде.
Нет такой книги, есть принципы верстки отдельных частей, каких-то сложных моментов.
Для понимания общей картины вам нужен опыт, всего лишь. Так что тупо продолжайте верстать, все будет.
И да, исследуйте структуру чужих сайтов в инспекторе. Хотя этот совет может быть коварным, иногда такое увидишь ...
Отвечу коротко, нужно иметь представление что это такое и как использовать, а дальше уже по мере надобности погружаться в дебри. Из более менее повседневной жизни, чаще используется SVG. Остальное это как вы говорите "желательно".
Чтобы фон и рамка огибали, так не получится, по крайней мере в вашем контексте. Получится только для одного из блоков с текстом. Пример jsfiddle.net/dnc8rz1L/7
Чтобы сделать для двух, нужно сделать для них обертку и уже обертке указать фон и рамку, но я так понимаю вам нужно их разделять. Поэтому по другому никак.
Может я чего не понял. Вопрос как то размыто звучит.
Разделите задачу на обязанности, вы например верстаете, она js пишет, он натягивает.
Создаете репозиторий с ветками вида:
master => testdev => 3 ветки на каждого из вас из ветки testdev. Локально для себя можете ветки тоже сделать. Потом сливаете все свои ветки с веткой testdev, тестите, все ок, сливаете с master.
Думаю тут поможет метод offset. Отталкиваться от верхнего левого края родителя, сопоставлять ширину стикеров и родителя. Сходу сложно выдать готовое решение, надо тестить.
UPD: Кстати, попробуйте использовать какой-нибудь drop плагин, в них ведь есть функционах определяющий пересечения элементов, думаю будет не сложно адаптировать к вашей задаче.
Никак. При абсолюте блок выпадает из потока, родительский блок его не видит.
Через JS определяйте размеры абсолютного блока и подставляйте эти значения родительскому. Больше никак.