`
zsuczw
  • 浏览: 51811 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用边框属性制作三角形的原理详解

 
阅读更多

经常看到一些非常漂亮的Tip插件,有一个三角指向目标,非常好看。


之前一直以为上面的那个小三角是用背景图片做出来的,但是今天看了一个网页的源码才知道,使用纯边框属性也可以做出这样的效果来。经过一番搜索和思索之后,终于把其原理吃透了,特发博记下。

 

一切都还要从HTML元素的边框说起。

 

在HTML中,一个元素可以具有边框(border)、内边距(padding)、外边距(margin)。


 

当元素的宽度和高度都不为0时,border呈现出一个四方形环绕在内容的四周。但是当元素的高度和宽度都为0时,情况就变得不同了。Magic Happens!

 

因为没有高度和宽度(指内容的高度和宽度),元素的四条边会重叠在一起,如下所示:

 


 

假设四条边都是一个矩形,那么4条边描述如下:

left-border:(1,2,3,8)

right-border: (4,5,6,7)

top-border: (1,8,7,6)

bottome-border: (2,3,4,5)

 

因为(1,8)组成的区域是top-border和left-border的重叠区域,因此它们各占一般,以对角线平分,因此标号为8的三角区域属于top-border,标号为1的三角区域属于left-border。其它区域类似。因此实际上四条边的构成是:

 

 

left-border:(1,2)

right-border: (5,6)

top-border: (8,7)

bottome-border: (3,4)

 

 

它们都是三角形。如果其它的三边都为透明,那么我们就能得到一个三角形。由于没有使用图片,因此能减少流量,实现也非常简单,推荐大家使用。

 

最后给出第三张图的html代码(chrome下验证正确显示)

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
<style type="text/css">
    body {
        margin: 0;
        padding: 0;
        position: relative;
        padding: 100px;
    }
    .show {
        border-left: 200px solid #BAC36E;
        border-right: 200px solid #BAB26E;
        border-top: 200px solid #ABB26E;
        border-bottom: 200px solid #BAB2E6;
        width: 0;
        height:0;
    }
</style>
</head>
<body>
    <div class="show"></div>
    <div style="width:400px;height: 1px;position: absolute; top: 300px;border-top:1px dashed red;"></div>
    <div style="height:400px;width: 1px;position: absolute; left: 300px;top:100px;border-left:1px dashed red;"></div>
    
    <p style="position: absolute;left:150px;top:200px;">1</p>
    <p style="position: absolute;left:150px;top:350px;">2</p>
    <p style="position: absolute;left:250px;top:400px;">3</p>
    <p style="position: absolute;left:350px;top:400px;">4</p>
    <p style="position: absolute;left:425px;top:350px;">5</p>
    <p style="position: absolute;left:425px;top:250px;">6</p>
    <p style="position: absolute;left:350px;top:150px;">7</p>
    <p style="position: absolute;left:200px;top:150px;">8</p>
</body>
</html>
 

 

 

  • 大小: 19.7 KB
  • 大小: 8.9 KB
  • 大小: 12.1 KB
0
0
分享到:
评论

相关推荐

    如何使用CSS(14)-边框属性

    ### 如何使用CSS(14)-边框属性 在网页设计与开发中,CSS(层叠样式表)是实现页面布局、美化外观的关键技术之一。其中,“边框”作为元素视觉呈现的重要组成部分,在构建美观且功能性的用户界面时不可或缺。本篇...

    HTML5&CSS3网页制作:边框属性.pptx

    HTML5与CSS3网页制作中的边框属性 边框属性是CSS中用于设置网页元素边框的样式、宽度和颜色的属性。边框属性可以分为三个部分:边框样式(border-style)、边框宽度(border-width)和边框颜色(border-color)。 ...

    纯CSS写带边框的三角形

    纯CSS写带边框的三角形

    CSS3动画属性边框属性等

    `border-image` 系列属性则允许使用图像作为边框。例如,`border-image: url(border.png) 30 30 stretch;` 会使用指定图片作为边框,边框宽度为30像素,拉伸填充。 **Box属性**涉及元素的盒模型。`overflow` 控制当...

    易语言学习进阶标签边框属性源码例程

    在这个"易语言学习进阶标签边框属性源码例程"中,我们将深入探讨易语言中的标签(Label)组件及其边框属性的使用。 在易语言中,标签主要用于显示静态文本,它可以在界面上提供信息,如提示、标题等。标签组件的...

    易语言学习进阶标签边框属性例程

    在这个"易语言学习进阶标签边框属性例程"中,我们将深入探讨易语言中的标签(Label)控件以及其边框属性的使用。 标签是用户界面中最基础的元素之一,通常用于显示文本信息,例如提示、标题或状态信息。在易语言中...

    neomfm 边框制作软件

    【边框制作软件——Neomfm详解】 在数字媒体领域,边框设计是提升内容视觉效果的重要手段之一,尤其在图像处理、社交媒体分享、广告设计等场景中,独特的边框可以增强作品的艺术感和专业性。"Neomfm"是一款专注于...

    table边框线属性

    如果希望表格边框呈圆角效果,可以使用`border-radius`属性。例如,`border-radius: 10px;`将使表格的四角变为10像素的圆角。 以上这些属性在实际开发中常常结合使用,以创建出各种各样的表格样式。在处理嵌套表格...

    第二章,Label 控件[Caption(标题)属性][BorderStyle(边框)属性]

    本章将深入探讨Label控件的两个核心属性:Caption(标题)属性和BorderStyle(边框)属性,它们对于创建直观、易于理解的用户界面起着至关重要的作用。 首先,让我们关注Caption属性。Caption属性用于设置或获取...

    CSS 设置边框属性.docx

    可以通过指定`border-style`属性来设置所有边框的样式,或者使用如`border-top-style`、`border-right-style`、`border-bottom-style`和`border-left-style`来分别设置各个边的样式。 2. **border-width属性** `...

    css边框属性.pdf

    CSS边框属性是网页设计中的关键部分,它允许开发者精确控制元素的外观,包括边框的样式、颜色和宽度。边框不仅仅局限于表格,而是可以应用于任何HTML元素,使得网页布局更加灵活且富有表现力。 首先,边框样式...

    易语言源码易语言学习进阶标签边框属性源码例程.rar

    易语言是一种专为非计算机专业人士设计的编程语言,它的语法简洁明了,...通过学习和研究这些源码,你不仅可以掌握标签和边框属性的使用,还能进一步理解易语言的编程逻辑和控制机制,为自己的编程之路打下坚实的基础。

    易语言学习进阶标签边框属性源码例程.rar

    易语言学习进阶标签边框属性源码例程.rar 易语言学习进阶标签边框属性源码例程.rar 易语言学习进阶标签边框属性源码例程.rar 易语言学习进阶标签边框属性源码例程.rar 易语言学习进阶标签边框属性源码例程.rar ...

    【 border虚线】CSS border虚线边框属性教程

    学习之路不可停止,最近在研究CSS,今天爱站技术频道的小编就給你们带来这篇CSS border虚线边框属性教程,教大家如何使用css制作网页中的虚线,巩固CSS border属性使用方法,感兴趣的同学可以参考一下。

    4.7.5边框属性

    4.7.5边框属性4.7.5边框属性

    css边框属性 (2).pdf

    我们可以使用CSS的`border-style`属性来定义边框的样式,包括`none`(无边框)、`hidden`(隐藏,主要用于解决表格边框冲突)、`dotted`(点线)、`dashed`(虚线)、`solid`(实线)、`double`(双线)、`groove`...

    Photoshop制作漂亮图片边框

    以上就是使用Photoshop制作漂亮图片边框的基本步骤。实践中,你可以根据个人创意和设计需求进行更多的尝试,比如使用自定义形状、添加文字元素或结合其他设计软件。不断地练习和探索,你将成为制作精美边框的专家。...

    使用CSS3边框属性.ppt

    使用CSS3边框属性.ppt

    CSS 设置边框属性 (2).docx

    除了`border-color`,还可以使用单独的边框颜色属性,如`border-top-color`、`border-right-color`、`border-bottom-color`和`border-left-color`。 最后,`border`属性是一个简写属性,用于同时设置边框的宽度、...

Global site tag (gtag.js) - Google Analytics