2015-04-17 3 views
2

Я создал трапецию с помощью CSS.Трапеция с рамкой

HTML:

<div class="trapezeG"></div> 

CSS:

.trapezeG { 
    position: absolute; 
    left: 214px; 
    top: 120px; 
    width: 1px; 
    height: 70px; 
    border: 1px solid #069; 
    border-color: transparent transparent transparent #000000; 
    border-width: 32px; 
    transform: rotate(180deg); 
} 

Вот мой Fiddle: https://jsfiddle.net/sfck34y3/

Вот реальный результат:

CSS trapeze with border

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

+2

Просто из любопытства, любой причина для преобразования элемента? https://jsfiddle.net/hashem/sfck34y3/1/ Почему бы не дать правильной границе ширину/цвет? –

+0

Не совсем ваш подход, но вы также можете использовать преобразование перспективы, как в этом ответе - http://stackoverflow.com/questions/15724678/creating-an-isoceles-trapezoid-shape/25833643#25833643 – Harry

ответ

3

Вы можете использовать border-left-width, чтобы сохранить ширину трапеции и уменьшить верхние/нижние границы с помощью свойства border-width. Вы должны установить свойство border-left-width после border-width имущества, иначе он будет перекрываться:

.trapezeG { 
 
    position: absolute; 
 
    left: 214px; 
 
    top: 120px; 
 
    width: 1px; 
 
    height: 70px; 
 
    border: 1px solid #069; 
 
    border-color: transparent transparent transparent #000000; 
 
    border-width: 10px; 
 
    border-left-width: 32px; 
 
    transform: rotate(180deg); 
 
}
<div class="trapezeG"> 
 
</div>


Как commented по @Hashem Qolami свойство преобразования не нужно, чтобы получить эту ориентацию.
Вам просто нужно удалить преобразование и использовать правую границу вместо левого, чтобы сделать форму трапеции:

.trapezeG { 
 
    position: absolute; 
 
    left: 214px; 
 
    top: 120px; 
 
    width: 1px; 
 
    height: 70px; 
 
    border: 1px solid #069; 
 
    border-color: transparent #000000 transparent transparent; 
 
    border-width: 10px; 
 
    border-right-width: 32px; 
 
}
<div class="trapezeG"> 
 
</div>

+0

Спасибо, но я хотел бы сохраните первоначальный размер ширины трапеции. Я бы хотел просто уменьшить угол – wawanopoulos

+1

Да! это то, что я ищу! – wawanopoulos

1

Левая сторона фигуры определяется по height из div. В то время как правая сторона определяется height + верхними/нижними границами.

Чтобы изменить высоту левой стороны, вам необходимо увеличить высоту и уменьшить ширину верхней/нижней границы, чтобы общая высота не изменилась.

.trapezeG { 
 
     position: absolute; 
 
     left: 214px; 
 
     top: 120px; 
 
     width: 1px; 
 
     height: 100px; 
 
     border: 1px solid #069; 
 
     border-color: transparent transparent transparent #000000; 
 
     border-width: 17px 32px; 
 
     transform: rotate(180deg); 
 
    }
<div class="trapezeG"> 
 
</div>


А вот демо, что переходы между двумя размерами, чтобы продемонстрировать эффект: https://jsfiddle.net/sfck34y3/5/ (парить над формой)

Смежные вопросы