Jump to content
  • 0

Ширина ячейки со скрытыми элементами


lazybaby
 Share

Question

Есть TD, в которой присутствует картинка, ширина которой в общем случае неизвестна, и текст. Картинка скрыта (display:none). Ширина ячейки задана, и она меньше ширины скрытой картинки. При этом ячейка отображается по заданной ширине, т.е. ширина скрытой картинки игнорируется. Если картинку сделать видимой (display:block), то ширина ячейки становится равной ширине картинки, что и требуется!

Собственно задача - необходимо сделать ширину ячейки со скрытой картинкой (неизвестной ширины) равной ширине этой картинки. А в общем случае - ширине любого скрытого контента в состоянии, когда он не скрыт. При этом контент внутри может быть самый разный, т.е. (если что) неизвестно у какого скрытого элемента выяснять его ширину :lol:

Для конкретики минимальный код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

</head>

<body>

<table width="100%" border="1"><tr><td width="50px"> <!-- Ширина ячейки 50px -->

<div id="header">

Some text

</div>

<div id="content">

<div style="display:block">

<img src="img.jpg"> <!-- Ширина картинки > 50px, например, 200px -->

</div>

</td><td></td></tr></table>

</body>

</html>

Идеи?

Edited by lazybaby
Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0
Есть TD, в которой присутствует картинка, ширина которой в общем случае неизвестна, и текст. Картинка скрыта (display:none). Ширина ячейки задана, и она меньше ширины скрытой картинки. При этом ячейка отображается по заданной ширине, т.е. ширина скрытой картинки игнорируется. Если картинку сделать видимой (display:block), то ширина ячейки становится равной ширине картинки, что и требуется!

Собственно задача - необходимо сделать ширину ячейки со скрытой картинкой (неизвестной ширины) равной ширине этой картинки. А в общем случае - ширине любого скрытого контента в состоянии, когда он не скрыт. При этом контент внутри может быть самый разный, т.е. (если что) неизвестно у какого скрытого элемента выяснять его ширину :lol:

Для конкретики минимальный код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

</head>

<body>

<table width="100%" border="1"><tr><td width="50px"> <!-- Ширина ячейки 50px -->

<div id="header">

Some text

</div>

<div id="content">

<div style="display:block">

<img src="img.jpg"> <!-- Ширина картинки > 50px, например, 200px -->

</div>

</td><td></td></tr></table>

</body>

</html>

Идеи?

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

Link to comment
Share on other sites

  • 0
Есть TD, в которой присутствует картинка, ширина которой в общем случае неизвестна, и текст. Картинка скрыта (display:none). Ширина ячейки задана, и она меньше ширины скрытой картинки. При этом ячейка отображается по заданной ширине, т.е. ширина скрытой картинки игнорируется. Если картинку сделать видимой (display:block), то ширина ячейки становится равной ширине картинки, что и требуется!

Собственно задача - необходимо сделать ширину ячейки со скрытой картинкой (неизвестной ширины) равной ширине этой картинки. А в общем случае - ширине любого скрытого контента в состоянии, когда он не скрыт. При этом контент внутри может быть самый разный, т.е. (если что) неизвестно у какого скрытого элемента выяснять его ширину :lol:

Ширина и высота скрытой картинки = 0.

Link to comment
Share on other sites

  • 0

Например вот так вот:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Фильтр</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<style type="text/css">
*{ margin: 0; padding: 0;}
img { display: none;}

table { border-collapse: collapse; border: 1px solid #000;}
td { border: 1px solid red;}
td.c img { display: block;}
</style>



</head>

<body>

<table>
<tr>
<td id="one">
<img src="img1.png" alt="s0rr0w" width="150" height="200" />
</td>
<td>
<img src="img1.png" alt="s0rr0w" width="150" height="200" />
</td>
<td class="c">
<img src="img1.png" alt="s0rr0w" width="90" height="90" />
</td>
</tr>
<tr>
<td>
<img src="img1.png" alt="s0rr0w" width="150" height="200" />
</td>
<td class="c">
<img src="img1.png" alt="s0rr0w" width="90" height="90" />
</td>
<td>
<img src="img1.png" alt="s0rr0w" width="150" height="200" />
</td>
</tr>
</table>
<script type="text/javascript">

var table = document.getElementsByTagName('table').item(0)
var img1 = document.getElementsByTagName('img').item(0)
var td = document.getElementById('one')
var w = img1.width
var h = img1.width
td.style.width = w+'px'
td.style.height = h+'px'


</script>
</body>

Link to comment
Share on other sites

  • 0
Нее, извини, я просто не понял. За пределами экрана? Это значит в других фреймах? Я просто в этом не разбираюсь ничерта :)

Я могу ошибаться, но такое ощущение, что речь о том, что можно картинку абсолютно отпозиционировать влево и вверх далеко за пределы экрана (например top:-5000px) без появления скролла. На :hover например обратно возвращать. Так часто делают эдакий преаплоад картинок "туз из рукава".

Link to comment
Share on other sites

  • 0
Я могу ошибаться, но такое ощущение, что речь о том, что можно картинку абсолютно отпозиционировать влево и вверх далеко за пределы экрана (например top:-5000px) без появления скролла. На :hover например обратно возвращать. Так часто делают эдакий преаплоад картинок "туз из рукава".

Именно

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy