3 колонки % px %
Здравствуйте!
Подскажет, пожалуйста, как можно получить такую резиновую верстку: 3 колонки % px %. Примерный эквивалент <table width="100%"><tr><td width="50%">ляля</td><td width=100><td width="50%">ляля</td></tr></table> например так не работает, поскольку left-block и right-block блоки набегают на central-block-const при масштабировании браузера
body {
margin: 0px;
padding: 0px;
background-color: #f0f0f0;
}
#main {
border: 1px solid #f00;
width:100;
padding:0px;
margin:0px;
position:relative;
overflow:hidden;
}
#central-block-const {
border: 1px solid #ff0;
width:100px;
margin: 0px auto;
}
#left-block {
border: 1px solid #ff0;
width: 40%;
position:absolute;
top:0px;
left:0px;
margin:0px;
padding: 5px;
}
#right-block {
border: 1px solid #ff0;
width: 40%;
position:absolute;
top:0px;
right:0px;
margin:0px;
padding: 5px;
}
<div id="main">
<div id = "central-block-const"><BR><BR><BR><BR><BR>
<BR></div>
<div id="left-block">
left blockleft blockleft blockleft blockleft blockleft block
</div>
<div id="right-block">
left blockleft blockleft blockleft blockleft blockleft block
</div>
</div>
Спасибо! |
40% + 40% + 100px будет равно 100% только если вся ширина 500px. При любой другой ширине поведение будет непредсказуемое.
|
но ведь как то можно сделать дивами такое
Примерный эквивалент <table width="100%"><tr><td width="50%">ляля</td><td width=100><td width="50%">ляля</td></tr></table> |
Цитата:
|
Либо просто 100px в центре, а остальное (лево и право) просто "пополам" от оставшегося...
|
Будет 40% + 100px + все_остальное.
может получиться, я понял, ksa - спасибо)! |
еще вопрос, немного не в тему). по какому принципу задавать имена селекторам. можно конечно как угодно, но наверняка есть какой - то принцип, хочется сразу научиться правильно
|
Элементарно:
<!DOCTYPE HTML>
<html>
<body>
<style>
.left{
float:left;
width:50%;
height:100%;
margin-left:-50px;
background-color: #fcc;
}
.right{
float:right;
margin-right:-50px;
width:50%;
height:100%;
background-color: #ccf;
}
.fixer{
margin:0 50px;
height:100%;
background-color: #cfc;
}
.main{
height:200px;
}
</style>
<div class="main">
<div class="fixer">
<div class="left">left</div>
<div class="right">right</div>
<div class="center">center</div>
</div>
</div>
</body>
</html>
|
Цитата:
|
Здорово! все спасибо!
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#left {
float: left;
width: 50%;
background-color: blue;
}
#center {
float: left;
width: 100px;
margin-left: -50px;
background-color: green;
}
#right {
margin-left: 50%;
padding-left: 50px;
background-color: silver;
}
#left .box {
margin-right: 50px;
background-color: red;
}
#right .box {
background-color: orange;
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div id='left'>
<div class='box'>left</div>
</div>
<div id='center'>center</div>
<div id='right'>
<div class='box'>right</div>
</div>
</body>
</html>
|
ksa, таких как ваш вариант можно придумать можно много, но достоинство моего - он симметричен.)
|
Цитата:
Ну не выкидывать же мне свой, раз я его таки сделал... :) |
А не подскажут ли мне, как сделать аналог?
Левый блок-100 px. правый- 20%. Как сделать, что бы центральный блок при изменении <div class="fixer"> занимал все свободное место между левым и правым блоком. Грубо говоря, что бы его размер был 80%-100px без JS |
Так тут вообще нет никаких подводных камней.0_o
<!DOCTYPE HTML>
<html>
<body>
<style>
.left{
float:left;
width:100px;
height:100%;
background-color: #fcc;
}
.right{
float:right;
width:20%;
height:100%;
background-color: #ccf;
}
.main{
height:200px;
background-color: #cfc;
}
</style>
<div class="main">
<div class="left">left</div>
<div class="right">right</div>
<div class="center">center</div>
</div>
</body>
</html>
|
Не сработает, к сожалению. Не все так просто.
если не указывать у центрального дива размеров, он выпихивает два левых-правых дива за пределы основного контейнера. |
0_o Нажмите "Посмотреть".
|
неправильно выразился. Эта идея в мой код не инкапсулируется.
вот код, к примеру. блок номер 3 у меня "уезжает". <div><div style="position: relative; border: 1px #aaaaaa solid; width: 95%; height: 30px; opacity: 0.5; background:#000000; margin: 0 auto; "> <div style="float:left; background:#555555; width: 100px; ">1</div><div style="background:#777777; " >222</div><div style="float:right; background:#999999; width: 20%; ">3</div></div>
<style type="text/css">
* {margin:0; padding:0}
html,body{height:100%}
</style>
|
Фокус-покус:
<style type="text/css">
* {margin:0; padding:0}
html,body{height:100%}
</style>
<div><div style="position: relative; border: 1px #aaaaaa solid; width: 95%; height: 30px; opacity: 0.5; background:#000000; margin: 0 auto; "><div style="float:left; background:#555555; width: 100px; ">1</div><div style="float:right; background:#999999; width: 20%; ">3</div><div style="background:#777777; " >222</div></div>
|
Всем кто ищет как сделать раскладку
Наберите в поисковике что-то вроде 'css layouts' и будет куча ссылок на готовые шаблоны |
Цитата:
Я несколько видов раскладок придумал, там где seo учтена (без лишних тегов и контент находиться сверху), ещё один способ прижать футер вниз (под ie6 и 7 я не верстаю. хотя в 7 может и работает) так ввобщем в интернете нет ничего подобного (я не нашёл по крайней мере именно готовый вариант) |
Цитата:
|
Цитата:
Я в своё время искал вес эти штуки, и не нашёл того до чего потом сам додумался вот и всё... А по запросу 'css layouts' дейтсвительно куча примеров которые можно сделать лучше и иначе, они с лишними тегами и / или неудовлетворяют SEO вёрстке. поэтому так и говорю... |
Pavel M.,
Кстати, подскажите пожалуйста, может знаете хороший форум профессиональных верстальщиков? P.S. это не предлагать. |
Цитата:
если есть проблема, то поиском пользуюсь, обычно нахожу что надо, потом что-то переделываю как мне нужно |
Цитата:
Ясно спасибо... дал Вам плюсик! :) |
Не выходит. Фокус в том, что центральный див не учитывает два крайних дива из-за свойств float:right; float:left; , которые необходимы.
Вот как это обойти?
<style type="text/css">
* {margin:0; padding:0}
html,body{height:100%}
</style>
<div style="position: relative; border: 1px #aaaaaa solid; width: 95%; height: 50px; opacity: 0.5; background:#000000; margin: 0 auto; ">
<div style="float:left; background:#555555; width: 100px; height: 25px; position: relative; ">1</div><div style="float:right; background:#999999; width: 20%; position: relative; ">3</div><div style=" height: 10px;
position: relative;
background: #555;
padding: 5px;
margin-left: auto;
margin-right: auto;
" >222<span style="width:10%"><span></div></div>
|
и table cell тоже нельзя, иначе внутренности уедут.
|
Rootpassword, ты бы картинкой чёле показал, что тебе нужно получить в итоге... :)
|
Типа паравозик с вагонами ))). Вагон посередине- вроде как занимает все оставшееся место между двумя крайними.
|
Rootpassword, т.е. картинки с размерами не будет? :D
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#right {
float: right;
width: 20%;
background-color: red;
}
#left {
float: left;
width: 100px;
background-color: silver;
}
#center {
margin-left: 100px;
margin-right: 20%;
background-color: orange;
}
</style>
<script type="text/javascript">
</script>
</head>
<body onload='Go(30)'>
<div id='right'>right</div>
<div id='left'>left</div>
<div id='center'>center</div>
</body>
</html>
|
Цитата:
Нельзя сделать то, не знаю что... :D На всё должно быть точное указание. |
Благодарю. Все гениальное-просто.
|
Rootpassword, для новичков есть вот такой "генератор страниц" ;)
http://csstemplater.com/ |
| Часовой пояс GMT +3, время: 15:58. |