Используйте CSS (и возможно JavaScript), чтобы заставить элемент быть квадратным (или поддержать определенное соотношение сторон)

У меня есть отделение, что я хочу иметь следующие характеристики:

  • Ширина = 50% ее родительского элемента
  • Высота, равная тому, что это должно быть в порядке для поддержания отношения определенного аспекта.

Я должен использовать проценты, потому что объект изменит размер лево-права, когда браузер будет изменен. Я хочу объект быть измененной главной нижней частью, чтобы гарантировать, что объект поддерживает то же соотношение сторон.

Я не думаю, что существует какой-либо способ использовать чистый CSS, чтобы сделать это, но кто-либо знает о пути? С другой стороны, есть ли легкий JavaScript способ сделать это? (JQuery прекрасен.)

5
задан David Pfeffer 14 January 2010 в 17:23
поделиться

3 ответа

Я понял, как это сделать без js, хотя вам нужно использовать прозрачное изображение.

Настройте структуру html, например:

<div class="rect_container"><img class="rect_image" src="rect_image.png"/>
 <div class="rect">Your favorite content here</div>
</div>

Используйте прозрачный png AxB для rect_image, где AxB - соотношение сторон.

Тем временем настройте таблицу стилей, например:

.rect_container {width: 50%; position: relative;}
.rect_image {width: 100%; display: block;}
.rect {width: 100%; height: 100%; position: absolute; left: 0px; top: 0px;}

Здесь важно воспользоваться преимуществом того факта, что изображения сохраняют свое соотношение сторон при изменении размера в одном направлении. Между тем, нам нужен пригодный для использования div, поэтому мы делаем изображение отображаемым как блок, оборачиваем его в div и помещаем в него абсолютно позиционированный div. Я извлек этот код из чего-то более сложного, которое я на самом деле тестировал. Работает как шарм.

15
ответ дан 18 December 2019 в 07:09
поделиться

jQuery звучит довольно легко. Установите ширину 50% в CSS, а затем следующее:

function onResize() {
    var el = $('#element');
    el.height(el.width());
}
$(window).resize(onResize);
$(document).ready(onResize);
3
ответ дан 18 December 2019 в 07:09
поделиться

На ПК C++ совсем не проблема - высококачественные компиляторы чрезвычайно широко распространены, и почти каждый компилятор C напрямую связан с компилятором C++, что очень хорошо, хотя есть несколько исключений, таких как lcc и недавно возрожденный pcc.

Более крупные встраиваемые системы, такие как системы на базе ARM, как правило, очень похожи на настольные системы с точки зрения доступности цепочки инструментов. Фактически, многие из тех же инструментов, которые доступны для настольных машин, могут также генерировать код для работы на машинах на базе ARM (например, многие из них используют порты gcc/g + +). Существует меньшее разнообразие для TI DSP (и больший акцент на качество генерируемого кода, чем функции исходного кода), но есть еще, по крайней мере, пара респектабельных компиляторов C++.

Если вы хотите работать с меньшими встраиваемыми системами, ситуация меняется в спешке. Если вы хотите иметь возможность нацеливаться на что-то вроде PIC или AVR, C++ на самом деле не является опцией. Теоретически, вы могли бы получить (например) Comeau для создания пользовательского порта, который создал бы код, который вы могли бы скомпилировать на компиляторе C этого целевого объекта - но шансы довольно хорошие, что даже если бы вы это сделали, это не сработало бы очень хорошо. Эти системы действительно слишком ограничены (особенно по размеру памяти) для C++, чтобы хорошо соответствовать им.

-121--4544644-

Вместо этого:

var activeMembers = (
from member in db.ContactSet
where member.ID.ToString().Contains(activeProducts));

Попробуйте сделать следующее:

var activeMembers = (
from member in db.ContactSet
where activeProducts.Contains(member.ID));
-121--2675143-

Вот вам: Обнаружение размера браузера с помощью JQuery .

0
ответ дан 18 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: