Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Смещение полей (https://javascript.ru/forum/xhtml-html-css/41781-smeshhenie-polejj.html)

valyan 29.09.2013 09:24

Смещение полей
 
Здравствуйте. Есть страничка http://mobidel2.18r.ru/chat.php. При нажатии на объект из списка, я меняю размер шрифта, но вместе с этим меняется вся ширина строки объекта. Как мне высчитать padding-top и padding-bottom, чтобы после изменения размера шрифта не было смещения линий между объектами. Рассуждал так - раз увеличиваем шрифт с 11px до 13px, то нужно уменьшить поля, убрать сверху и снизу по 1px. Но в итоге все равно происходит смещение.
Заранее спасибо!

ksa 29.09.2013 10:43

Цитата:

Сообщение от valyan
Как мне высчитать padding-top и padding-bottom, чтобы после изменения размера шрифта не было смещения линий между объектами

Как вариант:
- считать размеры "до" изменения шрифта
- изменить шрифт
- считать новые размеры
- по разнице размеров вычислить те отступы

Если те пункты всегда фиксированого размера, таки лучше все решить ЦССом, не привлекая скрипты...

danik.js 29.09.2013 11:51

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

valyan 29.09.2013 19:05

Цитата:

Сообщение от danik.js (Сообщение 274154)
Если пункты заведомо однострочные, то почему бы не прописать жестко высоту?

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

valyan 29.09.2013 19:08

Цитата:

Сообщение от ksa (Сообщение 274140)
Как вариант:
- считать размеры "до" изменения шрифта
- изменить шрифт
- считать новые размеры
- по разнице размеров вычислить те отступы

Если те пункты всегда фиксированого размера, таки лучше все решить ЦССом, не привлекая скрипты...

Ну вот так и делал
alert($("#id_p").css('height') // до изменения = 13px
//изменение шрифта
alert($("#id_p").css('height') // до изменения = 17px

Разница получается в 4px, т.е. эти 4px отнимаю от верхнего поля и от нижнего.

BETEPAH 29.09.2013 19:57

Цитата:

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

У вас сейчас высоты хватает на две строчки. Сделайте фиксированную высоту, вертикальное выравнивание по центру ячейки и не нужны будут скрипты.

danik.js 29.09.2013 20:22

Цитата:

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

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

valyan 29.09.2013 20:42

Цитата:

Сообщение от BETEPAH (Сообщение 274264)
У вас сейчас высоты хватает на две строчки. Сделайте фиксированную высоту, вертикальное выравнивание по центру ячейки и не нужны будут скрипты.

Теперь скачет по горизонтали.

valyan 29.09.2013 20:43

Цитата:

Сообщение от danik.js (Сообщение 274268)
Тогда нужно как-то определять количество занимаемых строк чтобы установить при необходимости удвоенный отступ, так?

Думаю, что более 2 строк навряд ли будет.


Часовой пояс GMT +3, время: 15:03.