#javascript #css
#javascript #css
Вопрос:
У меня есть такой html:
<div>
<span style="display: inline-block;height:20px">20</span>
<span style="display: inline-block;"><img src="img/ex.png"/></span>
</div>
Изображение, которое я импортирую во втором диапазоне, имеет размер 15×15 пикселей
Я могу проверить с помощью chrome, и я вижу, что первый img имеет высоту 15, а второй span имеет высоту 21. (первый имеет высоту 20, как и ожидалось)
может кто-нибудь сказать мне, почему второй диапазон имеет высоту 21 вместо 15???
Спасибо, это сводит меня с ума
Я добавляю ode ниже:
<!DOCTYPE html>
<html>
<head>
<style>
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
</style>
</head>
<body>
<div>
<span style="display: inline-block;height:20px">20</span>
<span style="display: inline-block;"><img src="img/ex.png"/></span>
</div>
</body>
</html>
Комментарии:
1. Существуют ли какие-либо определения стиля? т.е. span { padding:3px; }
2. больше кода (особенно css) / демонстрационный сайт очень помогли бы.
3. Теперь я добавил сброс Мейера, но проблема сохраняется.
Ответ №1:
Ну, либо изображение больше, чем вы думаете, изображение имеет отступы / поля, которые вы не принимаете во внимание, или у диапазона есть отступы / поля, которые вы не принимаете во внимание.
- Проверьте каждый элемент в Chrome, сначала изображение, затем span.
- Разверните метрики в правой части окна
- Небольшой график покажет вам, какой вклад вносит каждый размер элемента (отступ, поле, граница, размер элемента)
Комментарии:
1. Я добавил код, чтобы показать вам. Пожалуйста, попробуйте это с изображением размером 16×16, вы увидите, что диапазон, который охватывает изображение, больше.
Ответ №2:
тест на моей странице, высота 15px
вы устанавливаете какое-либо заполнение диапазона?
или попробуйте сделать *{padding:0;margin:0;}
.
или, учитывая диапазон класса, сделайте .span{padding:0!important;margin:0!important;}
или добавить
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
в верхнюю часть страницы для W3C
Ответ №3:
Используйте инструменты разработчика Chrome для проверки элемента и отслеживания вычисленных стилей. Я думаю, что очень вероятно, что вы откуда-то берете стили заполнения.
Ответ №4:
Чтобы просмотреть макет ваших html-элементов, ознакомьтесь с моим новым инструментом!