У меня есть стандартная форма в HTML, которая позволяет пользователю выбирать параметр «Ширина» и «Высота» (каждый со значениями от 1 до 10). Когда они отправляют форму, она отправляет ее на PHP / HTML-страницу, где PHP захватывает переменные «Ширина» и «Высота» и присваивает ее ширине и высоте DIV.
Но я пытаюсь просто использовать переменные «Ширина» и «Высота», чтобы назначить соотношение сторон к этому DIV, а затем автоматически увеличивать размер DIV до 100% контейнера, в котором он находится, но при сохранении это же соотношение сторон.
Пример: Пользователь выбирает ширину 4 и высоту 2, затем отправляет форму. На принимающей странице PHP этот DIV (тот, который получает отношения ширины и высоты) находится внутри контейнера с шириной 1000 пикселей и высотой 600 пикселей. Итак, теперь DIV изменяет размер до 1000 пикселей в ширину и высоту 500 пикселей (это будет соотношение сторон от 4 до 2)
Любые идеи, коды, скрипты были бы чрезвычайно полезны, спасибо вам большое!
Аарон
Поскольку процентные значения свойств padding-*
вычисляются относительно ширины содержащего блок сгенерированного блока, вы можете:
padding-top
или padding-bottom
), соответствующем требуемому соотношению сторон. Эта идея взята из http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio
#container { position: relative; width: 50%; } #dummy { padding-top: 75%; /* 4:3 aspect ratio */ } #element { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background-color: silver; }
<div id="container"> <div id="dummy"></div> <div id="element"> some text </div> </div>
Вы могли бы воспользоваться тем фактом, что замена элементов может иметь внутреннее соотношение сторон. Согласно спецификации ,
В противном случае, если «height» имеет вычисленное значение «auto», а элемент имеет внутреннее отношение, тогда используемое значение «height» равно:
(используемая ширина) / (внутреннее соотношение)
Поэтому вы могли бы
width:100%
. Тогда контейнер контейнера будет иметь требуемое соотношение сторон.
Замененным элементом может быть изображение. Вы можете создавать изображения требуемого соотношения сторон в PHP или использовать сторонний веб-сервис, например http://placehold.it/
В следующем фрагменте я использую ширину ширины 2px и высоту 1px ( ):
.container { border: 3px solid blue; position: relative; } .container > img { width: 100%; display: block; visibility: hidden; } .container > .content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow: auto; }
<div class="container"> <img src="http://i.stack.imgur.com/Lfmr6.png" /> <div class="content"> <p>01</p><p>02</p><p>03</p><p>04</p><p>05</p> <p>06</p><p>07</p><p>08</p><p>09</p><p>10</p> <p>11</p><p>12</p><p>13</p><p>14</p><p>15</p> <p>16</p><p>17</p><p>18</p><p>19</p><p>20</p> </div> </div>