it-swarm.dev

كيفية تشويه عنصر ولكن الحفاظ على النص العادي (غير مجففة)

هل من الممكن إعادة إنتاج هذه الصورة باستخدام CSS فقط؟

enter image description here

أريد تطبيق هذا على قائمتي ، بحيث تظهر الخلفية البنية على مثيل hover

لا أعرف كيف أفعل هذا ، لدي فقط ؛

.menu li a:hover{
     display:block;
     background:#1a0000;
     padding:6px 4px;
}
60
Preston

skew عنصر أصل (LI) و انحراف معكوس إنه عناصر فرعية

CSS Menu skewed buttons diagonal borders

nav li {
  display:inline-block;
  transition: background 0.2s;
  transform: skew(20deg);  /* SKEW */
}
nav li a {
  display:block;
  text-decoration:none;
  padding: 5px 10px;
  font: 30px/1 sans-serif;
  transform: skew(-20deg); /* INVERSE SKEW */
  color: #0bf;
}
nav li.active,
nav li:hover{
  background:#000;
}
<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li class="active"><a href="#">Products</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>
111
Roko C. Buljan

إليك حيلة للاستخدام عبر المتصفحات المختلفة - لقد قمتُ بإنشائها في بضع دقائق.

جرّب اللعب باستخدام الوسائط ، واستخدمت :before و :after للقيام بذلك.

https://jsfiddle.net/DTBAE/

10
udidu

يمكنك استخدام الخاصية transform: skew(X, Y) لتحقيق ذلك. إنشاء حاوية خارجية منحرفة ، ثم تشوه المقدار المعاكس في حاوية داخلية لتشويه النص مرة أخرى إلى أن تكون مستقيمة. انظر هذا الكمان على سبيل المثال ؛

http://jsfiddle.net/UZ6HL/4/

من ما قلته ، أنا أعتقد هذا هو ما تريد ، إن لم يكن يرجى التوضيح متى يجب أن يعرض العنصر الخلفية.

5
Don

للحصول على IE الدعم ، فقط أضف -ms-transform: skew(20deg, 0deg); بجانب كل transform: skew(20deg, 0deg);s الأخرى.

1
Thabet Jmal
.skew {
  background: green;
  color: #fff;
  padding: 50px;
  transform: skewX(-7deg);
  font-size: 20px;
  font-weight: 700;
}

.skew p {
  transform: skewX(7deg);
}
<div class="skew">
  <p>This is caption</p>
</div>

إليك مثال

0
lurk