Jump to content
  • 0

Верстка. Картинка по центру div


morohon
 Share

Question

Здравствуйте, уважаемые гуру! Не могли бы вы подсказать, как выровнять картинку по центру div'а в коде, который будет представлен ниже. Я знаю, что код не совершенен, и если вам будет не трудно, укажите на ошибке и если можно с объяснениями, чтобы я мог исправить их в дальнейшем. Буду очень признателен за помощь.
css:

		body {			width:100%;			height:100%;		}		body div#rotator{		    float:left;		    min-width: 60%;		    max-width: 65%;		   	min-height: 70%;		    max-height: 80%;		}		#rotator li img {			min-width: 85%;			max-width: 100%;			min-height: 75%;			max-height: 80%;		}		#rotator div > ul.list{		    position: relative; 		    list-style: none;		    padding: 0px;		    min-width: inherit;		    max-width: inherit;		    min-height: inherit;		    max-height: inherit;		}		#rotator ul.list > li {		    position: absolute;		    margin: 0 auto; 		    list-style: none;		    min-width: inherit;		    max-width: inherit;		    min-height: inherit;		    max-height: inherit;		}		#rotator ul.list > li.show {		    z-index:500;		    min-width: inherit;		    max-width: inherit;		    min-height: inherit;		    max-height: inherit;		}

код html:

		<div id="rotator">		  <ul class="list">		    <li class="show"><img src="<?php echo $path.'/1'.$type; ?>"/></li>		    <?php		    for ($i=2;$i<=$count;$i++){?>		    	<li><img src="<?php echo $path.'/'.$i.$type; ?>"/></li>		    <?php }		    ?>		  </ul>		</div>

Если нужно, данный код располагается здесь. Заранее размер картинки неизвестен. Нужно чтобы и вертикальные и горизонтальные картинки были одинаково расположены по центру. Пожалуйста, помогите!

 

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

Потому что li растягивается под размеры картинки и ей не в чем выравниваться.

В свою очередь li имеет positon absolute и выпадает из потока, поэтому родительский ul  не растягивается нормально под li.

С третьей стороны margin: 0 auto; не действует с позицией absolute.

Link to comment
Share on other sites

  • 0

Потому что li растягивается под размеры картинки и ей не в чем выравниваться.

В свою очередь li имеет positon absolute и выпадает из потока, поэтому родительский ul  не растягивается нормально под li.

С третьей стороны margin: 0 auto; не действует с позицией absolute.

Я понимаю, что прошу многого, но не могли бы вы помочь исправить этот косяк? Я не очень хорошо знаю css

Link to comment
Share on other sites

  • 0

Потому что li растягивается под размеры картинки и ей не в чем выравниваться.

В свою очередь li имеет positon absolute и выпадает из потока, поэтому родительский ul  не растягивается нормально под li.

С третьей стороны margin: 0 auto; не действует с позицией absolute.

В данный момент, код располагается здесь: http://www.morohon.pusku.com/panel2.ru/

Link to comment
Share on other sites

  • 0
У вас непонятно в центре чего должна быть картинка - окна? или какой области? Сколько пикселей или процентов область, в которой выравнивать надо?

Див внутри которого список ul

размер картинки примерно ширина-70%  высота - 80%

Вот примерная схема:

image.png


http://jsfiddle.net/ryter/rk36P/ что то подобное нужно ?
 

Да, нечто похожее. Картинка должна быть по центру div вне зависимости от того, вертикальная она или горизонтальная. Я в самом начале думал двигать картинку просто (наивно думая, что она не выйдет за границы div), но оказывается в html картинки выходят за границы div.
Я очень слаб в css, поэтому и обратился сюда

Link to comment
Share on other sites

  • 0

http://jsfiddle.net/ryter/rk36P/ что то подобное нужно ?

Только вопрос такой, если на эту верстку прикрепить этот ротатор изображений:

 

<script type="text/javascript">	 	function theRotator() {		var time="<?php echo $time;?>";		// Устанавливаем прозрачность всех картинок в 0		$('div#rotator ul li').css({opacity: 0.0});	 		// Берем первую картинку и показываем ее (по пути включаем полную видимость)		$('div#rotator ul li:first').css({opacity: 1.0});	 		// Вызываем функцию rotate для запуска слайдшоу, 5000 = смена картинок происходит раз в 5 секунд		setInterval('rotate()',time);	}	 	function rotate() {			// Берем первую картинку		var current = ($('div#rotator ul li.show')?  $('div#rotator ul li.show') : $('div#rotator ul li:first'));	 		// Берем следующую картинку, когда дойдем до последней начинаем с начала		var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') :current.next()) : $('div#rotator ul li:first'));		 		// Расскомментируйте, чтобы показвать картинки в случайном порядке		// var sibs = current.siblings();		// var rndNum = Math.floor(Math.random() * sibs.length );		// var next = $( sibs[ rndNum ] );	 		// Подключаем эффект растворения/затухания для показа картинок, css-класс show имеет больший z-index		next.css({opacity: 0.0})		.addClass('show')		.animate({opacity: 1.0}, 1000);	 		// Прячем текущую картинку		current.animate({opacity: 0.0}, 1000)		.removeClass('show');	};	 	$(document).ready(function() {				// Запускаем слайдшоу		theRotator();	});	 	</script>

я пробовал в css убирать position: absolute, и выходило, что картпинка начинает постоянно опускаться вниз. Одна картинка в нужном месте появилась, другая ниже ее ( как список)

Link to comment
Share on other sites

  • 0

div.rotator ul li {display: none}

div.rotator ul li.show {display: block}

position absolute убрать

Вам огромное спасибо! Пойду все соединю воедино. Если что не пойму - обращусь. Спасибо еще раз огромное. И не только вам, а еще и 

Zverushka

Очень помогли

Link to comment
Share on other sites

  • 0

div.rotator ul li {display: none}

div.rotator ul li.show {display: block}

position absolute убрать

Не подскажите, относительно чего задавать размеры картинки. Они по идее лежат в li, т.е. нужно ориентироваться на размеры li. Но размеры li явно не заданы, пытался задать, получил очень плохую штуку. Пытался задать для div#rotator ul li img размеры, получаются слишком большие (если берешь 100% он ориентируется не на область браузера и выдает размер больше высоты области просмотра страницы и выходит бегунок)

И еще маленький вопрос, если вы разбираетесь в js, подскажите, почему после переверстывания, у меня получилась небольшая заминка перед появлением первой картинки ( там идет просто белый экран на месте картинки (как будто у нее opacity 0).

код html:

 

<?php	$count=count(glob($path.'/*.jpg'));?><div id="rotator">    <ul>        <li class="snow"><img src="<?php echo $path.'/1.jpg'; ?>" alt="img-1" /></li>        <?php        	for ($i=2;$i<=$count;$i++){ ?>        		<li class="snow2"><img src="<?php echo $path.'/'.$i.'.jpg'; ?>" alt="img<?php echo '-'.$i;?>" /></li>			<?php 			} ?>	</ul></div><div id="right">	<div class="logo">		<img src="<?php echo 'config_images/'.$row['logo']; ?>" class="main">	</div>	<div class="clock">		<?php include "clock/index.html"; ?>	</div></div><div id="marquee">	<marquee direction="left" loop="-1" behavior="scroll" scrolldelay="1" scrollamount="10" class="marq">		<span class="text"><?php echo $row['marquee'];?></span>	</marquee></div>

код css:

		div#rotator{		    float:left;			text-align: center; 			margin: 0 auto;			height: 80%;			display: table;			width: 65%;		}		div#rotator ul{			margin: 0;			padding: 0;			list-style: none;			display: table-cell;			vertical-align: middle;		}		div#rotator ul li {			display: none;		}		div#rotator ul li.show {		    z-index:500;		    display: block;		 }		div#rotator ul li img {			vertical-align: top;		}		div#right {			position: absolute;			right: 0px;			width: 30%;			height: 80%;		}		div#right .logo {			width: 100%;			height: 40%;		}		div#right .logo img {			width: 70%;			height: auto;			margin: 0 auto;		}		div#right .clock{			width: 100%;			height: 30%;			margin: 20px auto;		}		#marquee .marq {		    position: absolute; 		    bottom: 0;		    left: 0;		    right: 0;		}		#marquee .text {			color: blue;			font-size:95px;		}

И код js:

 

		function theRotator() {			var time="<?php echo $time;?>";			$('div#rotator ul li').css({opacity: 0.0});			$('div#rotator ul li:first').css({opacity: 1.0});			setInterval('rotate()',time);		}		function rotate() {				var current = ($('div#rotator ul li.show')?  $('div#rotator ul li.show') : $('div#rotator ul li:first'));			var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') :current.next()) : $('div#rotator ul li:first'));				next.css({opacity: 0.0})			.addClass('show')			.animate({opacity: 1.0}, 1000);			current.animate({opacity: 0.0}, 1000)			.removeClass('show');		};		$(document).ready(function() {					theRotator();		});

Надеюсь я вам еще не надоел

 

 

Ах да, код здесь: http://www.morohon.pusku.com/new_panel/

Edited by morohon
Link to comment
Share on other sites

  • 0

Не могу понять, почему горизонтальные картинки при задании размера встают нормально, а вот вертикальные картинки почему-то становятся больше области просмотра. Где-то пикселей на 200, хотя такого размера им никто не задавал

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

  • Similar Content

    • By tohastar
      Здравствуйте! Помогите разобраться. Для детского садика требуется создать карту сайта по новым требованиям. Карту создали с помощью генератора, внесли небольшие изменения в код, но теперь хочется упорядочить блоки по модулям на 4 столбика, как добавить новые столики понятно, главное их упорядочить. Т.е. для примера модуль подменю "важная информация" находится с верху и относящиеся к нему страницы вниз и так далее. Но к сожаление не понятно, как это можно реализовать, все добавленные вновь страницы идут последовательно вниз. Пришлось отделять тегами < p>, но вверх поднять их не получается.  http://vasilyek78.ucoz.ru/Dokument/SiteMap.html адрес расположения карты сайта.
    • By Алеся
      Подскажите, пожалуйста, как растянуть фоновую картинку, заключенную в div, на всю ширину вьюпорта? Сейчас она отображается посередине, по ширине макета. Указывала ширину 100%, 1200px, минимальную ширину 1200px - не работает.
      <div class="banner"> 
            <div class="container background-image">
            <div class="banner_text"></div>
            </div>
          </div>
      CSS:
      .background-image {
        background-image: url('/img/new_oranges.jpg');
        background-size: cover;
        height: 200px;
      }
    • By cozy_eternity
      Столкнулся с проблемой показа скрытых элементов. Ставлю div'у display:none и при выборе radio кнопки, div должен отображаться, но этого не происходит, прошу помочь..

       
      <label>Нужны ли распашные дверцы?</label> <p><input type="radio" name="swing" onclick="ShowElement1">Да</p> <p><input type="radio" name="swing">Нет</p> <div id="swing"> <p><label>Введите размер ячеек:</label></p> <p>Высота<input type="number"></p> <p>Ширина<input type="number"></p> <p>Глубина<input type="number"></p> </div> #swing { display: none; } function ShowElement1(){ document.getElementById("swing").style.display='block'; } Разобрался
    • By konoplev_ps
      Добрый день.
      Проблема: Настраиваю в отдельном CSS стили для шрифтов h1, h2 и т.д., но когда начинаю их применять внутри тега div - не вижу изменений. Сам CSS подключил, в нем и другие настройки стилей, которые успешно применяются к файлу html.
    • By Bourdun
      Проблема с товарами. Не получается перенести товар так, чтобы он был справа от первого, а не под ним

      И да, float:right; переносит вообще в самое право самой страницы
×
×
  • 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