首页 > 其他分享 >CSS:箭头

CSS:箭头

时间:2023-11-10 15:25:37浏览次数:35  
标签:width 100px height 箭头 0px border transparent CSS

一、箭头产生的原理

1、设置一个div,然后给他设置样式:边框100px,上右下左颜色分别为绿、蓝、橘、红。然后设置div的高度和长度均为100px

<template>
  <div class="about">
    <div id="demo12"></div>
  </div>
</template>

<script>
export default {
  name: "arrow"
}
</script>

<style scoped>
#demo12 {
  border: 100px solid;
  border-color:green blue orange red;
  width:100px;
  height:100px;
}
</style>

效果如下:

发现里面的正方形长宽为100px,而border的宽度不占用正方形的大小,而是向外扩散。

2、我们可以看到中间一个正方形,就是我们设置的长和框:100px*100px。假如把width和height都设置成0的话,会有什么样的情景呢?

效果如下:

其实就是变成一个点了,然后就变成下图了

3、三角形是不是有了?而且还有四个,这时我们只需要取其中想要的任意一个方向的三角形即可。

比如我们要取绿色的三角形,将上面的代码修改一行代码:

#demo12 {
  border: 100px solid;
  border-color:green transparent transparent transparent;
  width:0px;
  height:0px;
}

效果如下:

同理,如果你要取蓝色的、橘色的、红色的,改变第一个颜色值即可。

除了获取上面三角形以外,我们还可以获取上面每个三角形的一半,也就是一个小的三角形(left或right):

这时,我们再加一行代码即可获取:

#demo12 {
  border: 100px solid;
  border-color:green transparent transparent transparent;
  width:0px;
  height:0px;
  border-left:transparent;
}

加上border-left:transparent;后,我们可以获取right的部分,效果如下:

同理,要获取left部分,可以设置border-right:transparent;

#demo12 {
  border: 100px solid;
  border-color:green transparent transparent transparent;
  width:0px;
  height:0px;
  border-right:transparent;
}

效果如下:

二 、箭头在实际应用中的使用和实现

1、梯形

<template>
  <div class="about">
    <div id="demo11"></div>
  </div>
</template>

<style scoped>
#demo11 {
  border: 10px solid #000;
  border-left-color: #f00;
  width: 10px;
  height: 10px;
}</style>

效果如下:

 2、三角形

当元素宽、高为零,且其他边为透明颜色时,可以形成一个三角形:

#demo11 {
  border: 10px solid #000;
  border-left-color: #f00;
  width: 0px;
  height: 0px;
}

效果如下:

3、任意三角形

#demo11 {
  border: 10px solid transparent;
  border-left: 30px solid #f00;
  width: 0px;
  height: 0px;
}

效果如下:

4、三角形跟矩形组合成提示框

例1:有加粗边框线的气泡

<template>
  <div class="about">
    <div id="demo"></div>
  </div>
</template>

<script>
export default {
  name: "arrow"
}
</script>

<style scoped>
#demo {
  width: 100px;
  height: 100px;
  /*背景色*/
  background-color: #ccc;
  position: relative;
  border: 4px solid #333;
}
#demo:after, #demo:before {
  border: solid transparent;
  width: 0;
  height: 0;
  /*与左边的距离*/
  left: 100%;
  /*设置:before和:after时必须设置其content属性,否则伪元素就不起作用*/
  content: ' ';
  position: absolute;
}
/*边框厚为9px的三角形*/
#demo:after {
  border-width: 9px;
  border-left-color: #ccc;
  /*到顶部的距离*/
  top: 15px;
}
/*边框厚为14px三角形*/
#demo:before {
  border-width: 14px;
  border-left-color: #333;
  /*到顶部的距离*/
  top: 10px;
}
</style>

效果如下:

 凸出的箭头就是两个颜色的三角形重合的结果。

例2:没有边框加粗线的气泡

<template>
  <div class="about">
    <div class="tag">
      <div class="arrow">
        <div/>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "arrow"
}
</script>

<style scoped>
.tag {
  width: 150px;
  height: 60px;
  /*border:2px solid gray;*/
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: 997;
  background: #FFC0CB;
  opacity: 0.7;
  border-radius: 10px;
  /*光标放上去就变成小手*/
  cursor: pointer;
}
.tag .arrow div {
  position: absolute;
  bottom: -20px;
  left: 65px;
  border: 10px solid;
  width:0px;
  height:0px;
  border-color: #FFC0CB transparent transparent transparent;
}
</style>

效果如下:

5、两个向右的三角形叠加而成

设置2个div,其中一个相对定位,另外一个绝对定位,这样就可以控制两个div的位置了。然后获取2个div的右向箭头即可。

<template>
  <div class="about">
    <div class="demo demo12">
      <div class="demo demo13"></div>
    </div>
  </div>
</template>

<script>
export default {
  name: "arrow"
}
</script>

<style scoped>
.demo{
  border: 50px solid;
  border-color:transparent transparent transparent orange;
  width:0px;
  height:0px;

}
.demo12 {
  position:relative;
  float:left;
}
.demo13 {
  position: absoulte;
  margin-top:-52px;
}</style>

效果:

 

标签:width,100px,height,箭头,0px,border,transparent,CSS
From: https://www.cnblogs.com/zwh0910/p/17823629.html

相关文章

  • 新建项目相关的css文件及设置
     global.css/*全局样式表*/html,body,#app{ height:100%; margin:0; padding:0;} 2.reset.css/***EricMeyer'sResetCSSv2.0(http://meyerweb.com/eric/tools/css/reset/)*http://cssreset.com*/html,body,div,span,applet,object,iframe,......
  • vue+css实现的伪3d旋转罐+液位动态变化
    话不多说先看效果:设计思路:罐是做了三个位置(中=>左,左=>右,右=>中)的动画效果,每个罐轮流使用一次,来实现旋转的效果。中间的光亮做了个变形延迟。罐的透明效果是使用了三层,即最底层是粒子不透明图片,中层是液体组件,最上层是罐体png图片。都是用了绝对定位,请务必设置好位置。液体组......
  • 你不知道的CSS骚操作
    1.禁用鼠标事件、移动端禁止图片长按保存功能(PC端禁止鼠标点击事件,移动端禁止触摸事件还有长按事件).no-events{pointer-events:none}2.移动端禁止用户长按文字选择功能.unselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:......
  • 11月10日css盒子模型的margin和padding属性
    目录css盒子模型margin属性如何用margin来控制其上下左右的距离margin的缩写padding属性首先它如何进行上右下左的移动现在我有一个需求就是将内容在边框的正中央显示然后就是简写的方式css盒子模型有四个属性属性描述margin用于控制元素与元素之间的距离;margin的最......
  • vue项目中安装scss
    1、安装node-sass、sass-loader简化内容,具体版本等注意事项在下面。(node官网:GitHub-sass/node-sass::rainbow:Node.jsbindingstolibsass)//默认安装最新版本npminstallnode-sass--sava-devnpminstallsass-loader--save-dev//指定安装版本npminstallnode-sass@x.......
  • 前端学习之html和css
    前端    快速入门篇:首先给个title,就是页面标题,比如说这页的博客后台 - 博客园这种,第二就是我在它的页面身体里面的标题有h1——h6六种大小的标题,可以按需选择,这个是文字类,然后为了美观一点,可以放图片上去,然后图片也得有它的大小尺寸,包括文字标题也是对吧,所以就引入......
  • 5.CSS3制作苹果风格键盘
    CSS3制作苹果风格键盘HTML代码:1<!DOCTYPEhtml>2<html>3<head>4<metacharset="utf-8"/>5<title>CSS3KeyBoard-Linux公社-Linux系统门户网站</title>6<!--<linkrel="stylesheet"href......
  • 前端基础之CSS
    前端基础之CSS目录前端基础之CSS一.CSS语法格式二.CSS选择器2.1基本选择器2.2组合选择器2.3属性选择器2.4分组于嵌套2.5伪类选择器hover点击选中2.6伪元素选择器2.7选择器优先级三.CSS属性系列3.1设置长宽3.2字体属性3.3文字属性3.4背景属性3.5背景属性扩展3.6......
  • css_flex盒子内的元素文本超出部分省略
    搜索文本超出部分省略,可以搜索到如下代码white-space:nowrap;/*超出的空白区域不换行*/overflow:hidden;/*超出隐藏*/text-overflow:ellipsis;/*文本超出显示省略号*/但是如果某个元素是flex盒子的子项,且宽度自适应的话,想要实现内部元素的的文本省略,会发现......
  • CSS样式的高级选择器
    高级选择器前面也介绍了一些简单的选择器但是这些简单的选择器,无法更加准确选择目标元素,所以需要用到高级选择器。交集选择器交集选择器是同时满足多个选择器筛选的条件的才能被选中,即两个集合中相同的元素才能被选中。语法:是两个选择器之间不能有任何空格举个例子:1<!DOC......