在视觉设计中,平行四边形往往给人一种动感。

要生成一个平行四边形,只要通过css变形,就可做到:

-webkit-transform: skewX(-45deg);

  

那么生成一个平行四边形的按钮呢?列如下面这样的效果图:

通过第一次尝试,我使用了斜向变形:得到下面的效果图,发现里面的文字也进行了拉伸。

解决方案1:

有没有办法让容器形状倾斜,而其中的内容不拉伸呢?

办法就是,我们再对里面的内容进行一次反向skew()变形,所以我们首先得把里面的内容添加一层额外的元素进行包裹:

<a class="g"> <div> Click me</div> </a>

.g{-webkit-transform: skewX(-45deg);}
.g>div{-webkit-transform: skewX(45deg)}

最终能得到的正确的效果图。

解决方案2:

思路是,把所有的样式应用到伪元素上,然后再对伪元素进行变形。因为我们的内容不包含在伪元素里。so 可以使用伪元素方案:

.g{position: relative;
/*其他的文字样式,内边距等等*/} .g::before{ content:'';//用伪元素来生成一个矩形
position: absolute;
top:;right:;bottom:;left:;//所有的偏移量设置为0,以便于伪元素被拉至宿主元素的尺寸。
z-index: -2;
background: #58a;
-webkit-transform: skew(45deg);
}

css 平行四边的更多相关文章

  1. css圆角 四边投影

    -moz-border-radius: 30px;-webkit-border-radius: 30px; border-radius:30px; -webkit-box-shadow:0 0 10p ...

  2. 使用css打造形形色色的形状!

    使用css打造形形色色的形状! css是非常强大的工具,如果我们掌握的好,那么许多复杂的形状不需要使用图片而直接使用css完成即可,这不仅有利于减少http请求以增强性能还便于日后的管理和维护,一举两 ...

  3. CSS实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形

    本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置 ...

  4. 「CSS」css基础

    1. 文字水平居中 将一段文字置于容器的水平中点,只要设置text-align属性即可: text-align:center; 2. 容器水平居中 先该容器设置一个明确宽度,然后将margin的水平值 ...

  5. CSS深入了解border:利用border画三角形等图形

    三角形实际上是border的产物 我们正常使用的border都是四边一个颜色,当我们把四边换上不同颜色 那么你就会发现,三角来了~! <!DOCTYPE html> <html la ...

  6. 基于 HTML5 的 WebGL 技术构建 3D 场景(一)

    今天和大家分享的是 3D 系列之 3D 预定义模型. HT for Web 提供了多种基础类型供用户建模使用,不同于传统的 3D 建模方式,HT 的建模核心都是基于 API 的接口方式,通过 HT 预 ...

  7. Codeforces Round #388 (Div. 2) A,B,C,D

    A. Bachgold Problem time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. for 循环 正方形

    <?php//================================正方形//for($q = 1; $q <= 5; $q ++ ){//    for($z =1; $z & ...

  9. java 向上转型 向下转型

    //父类 四边形 class Quadrangle{ public static void draw (Quadrangle q){ } } //子类  public class Parallelog ...

随机推荐

  1. 洛谷 P3376【模板】网络最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  2. vim多行注释与删除

    一.多行注释 1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;2. 在行首使用上下键选择需要注释的多行;3. 按下键盘(大写)“I”键,进入插入模式:4. 然后输入注 ...

  3. Android StateListDrawable资源的使用(文本的高亮显示)

    1.介绍 2.xml文件属性介绍 3.实例演示 <1>新建drawable文件 app--->src---->main---->res---->drawable , ...

  4. HTML 5 桌面提醒

    <script> function showNotice(title,msg){ var Notification = window.Notification || window.mozN ...

  5. c# 委托访问listbox多线程操作

    c# 委托访问listbox多线程操作 using System;using System.Collections.Generic;using System.ComponentModel;using ...

  6. 马踏棋盘--dfs

    [问题描述]关于马踏棋盘的基本过程:国际象棋的棋盘为 8*8 的方格棋盘.现将"马"放在任意指定的方格中,按照"马"走棋的规则将"马"进行移 ...

  7. .net mvc 用jquery ajax成功后页面跳转。

    $.ajax({ //url: 'http://192.168.0.102/webApiDemo/api/WebApiTest/PostStudentInforOnePara', //url: &qu ...

  8. Chess

    # coding=utf-8 import pandas as pd import numpy as np from sklearn import cross_validation import te ...

  9. my33_内存满导致mysqld被kill

    监控报警发现MGR的一个节点故障,查看时发现LVS已经发生切换,LVS切到了MGR新的写节点上了,排查原因 /var/log/message Mar :: db10 kernel: crond inv ...

  10. C++ 调用Python3

    作为一种胶水语言,Python 能够很容易地调用 C . C++ 等语言,也能够通过其他语言调用 Python 的模块. Python 提供了 C++ 库,使得开发者能很方便地从 C++ 程序中调用 ...