У меня есть html-форма, которая принимает данные от пользователя и код php
, который берет input
из указанной папки. Затем он извлекает каждое изображение из этой папки и отображает его в виде слайд-шоу.
Проблема в том, что изображение растягивается по ширине и выглядит ужасно. Я попробовал тактику подгонки объекта среди других тактик, которые я нашел в Интернете, но ни одна из них, похоже, не работает.
Как сохранить соотношение сторон изображений в цикле слайд-шоу?
<html>
<head>
<style = "text/css">
</style>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://malsup.github.com/jquery.cycle2.js"></script>
<?php
$images = array();
$directory = 'images '.$_POST["name"];
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("/\.png$/", $file)) $images[] = $file;
elseif (preg_match("/\.jpg$/", $file)) $images[] = $file;
elseif (preg_match("/\.jpeg$/", $file)) $images[] = $file;
elseif (preg_match("/\.gif$/", $file)) $images[] = $file;
}
shuffle($images);
closedir($handle);
}
?>
<div class="cycle-slideshow">
<?php
for($i= 0; $i < 3; $i++) {
foreach ( new DirectoryIterator($directory) as $item ) {
if ($item->isFile()) {
$path = $directory . '/' . $item;
echo '<img src="' . $path . '" class="displayed"
height= "512px"
object-fit= "contain"
width = "75%"
display: "block"
margin: "auto"
border= "3px solid #73AD21" />';
}
}
}
?>
</div>
</body>
</html>
1 ответ
Вы должны удалить width = "75%
, потому что у вас уже есть инициализированная высота. Вы также можете добавить padding к изображениям в файле CSS. Примечание. Для использования заполнения вы должны использовать box-sizing: border-box
. Используя border-box
, вы фактически добавляете это дополнение в пределах размеров вашего поля и предотвращаете его изменение ширины или высоты. Я не проверял это, но надеюсь, что понял ваш вопрос.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
width="75%"
- поскольку он имеетheight
, он должен правильно масштабироваться