首页 web前端 css教程 使用CSS形状进行有趣的用户控件和导航

使用CSS形状进行有趣的用户控件和导航

Mar 21, 2025 am 10:17 AM

利用CSS Shapes打造别具一格的用户控件和导航

水平或垂直排列,这是屏幕上用户控件的传统顺序,就像菜单项列表一样。但如果我们将其更改为更流畅的布局,包含弯曲、曲线和凹槽呢?只需几行代码即可实现。在现代极简主义设计的时代,用户控件的曲线布局为网页设计增添了恰到好处的活力。

多亏了CSS Shapes,编码变得异常简单。

CSS Shapes(特别是shape-outside属性)是一种标准,它为浮动元素分配几何形状。然后,内容会沿着这些形状的边界围绕浮动元素环绕。

此标准的用例通常被展示为文本、编辑内容的设计——纯文本沿着其侧面的浮动形状流动。但是,在这篇文章中,我们使用用户控件代替纯文本,看看这些形状如何为它们的布局注入流畅的轮廓。

第一个演示是一个可以在产品页面中使用的设计,其中任何与产品相关的操作控件都可以沿着产品本身的形状对齐。

<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174252343279003.png" class="lazy" alt="Using CSS Shapes for Interesting User Controls and Navigation ">
<div>
  <label for="one">One Bottle</label>
</div>
<div>
  <label for="six">Six Pack</label>
</div>
<div>
  <label for="twelve">Twelve Pack</label>
</div>
<div>
  <label for="crate">Entire Crate</label>
</div>
登录后复制
img {
  height: 600px;
  float: left;
  shape-outside: url("bottle.png");
  filter: brightness(1.5);
}
input {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  margin-left: 20px;
  box-sizing: content-box;
  border: 10px solid https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b231714;
  border-radius: 50%;
  background: linear-gradient(45deg, pink, beige);
  cursor: pointer;
}
登录后复制

瓶子的图像向左浮动,并使用shape-outside属性赋予形状边界。图像本身被用作形状的参考。

注意:只有具有透明背景的图像才能根据图像的轮廓生成形状。

单选按钮的默认样式被自定义样式替换。一旦浏览器将形状应用于浮动图像,单选按钮就会自动沿瓶子的形状对齐。

这样,我们不必费心单独为每个单选按钮分配位置来创建这样的设计。之后添加的任何按钮都会根据瓶子的形状自动与之前的按钮对齐。

这是另一个例子,灵感来自维基百科主页。这是我们正在考虑的那种非常规主菜单布局的完美示例。

使用shape-outside很容易实现:

<div>
  <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174252343318871.png" class="lazy" alt="Using CSS Shapes for Interesting User Controls and Navigation ">
  <div>
    <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Formation</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Atmosphere</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Heat</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Gravitation</a>
  </div>
</div>
<div class="right">
  <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174252343318871.png" class="lazy" alt="Using CSS Shapes for Interesting User Controls and Navigation ">
  <div>
    <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Moon</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Climate</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Rotation</a><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Orbit</a>
  </div>
</div>
登录后复制
img {
  height: 250px;
  float: left;
  shape-outside: circle(40%);
}

main > div { grid-area: 1/1; } 

.right { transform: rotatey(180deg) translatex(250px); }

.right > a { 
  display: inline-block; 
  transform: rotateY(180deg) translateX(-40px); 
}

main > div:nth-of-type(2) img { visibility: hidden; }
登录后复制

元素只能向左或向右浮动。没有中心浮动元素,内容围绕两侧环绕。为了实现链接环绕图像两侧的设计,我创建了两组链接并将其中一组水平翻转。我在两组中都使用了具有circle() CSS 形状值的相同图像,因此即使在旋转后形状也能匹配。翻转组的链接文本将以颠倒的侧向显示,因此它被旋转回来。

尽管两个图像可以彼此叠加而没有可见的溢出,最好使用opacityvisibility属性隐藏其中一个。

第三个示例由于使用了动态HTML元素<details></details>而显得有点生动。此演示是显示有关产品等额外信息的设计的一个很好的示例,这些信息默认情况下对用户隐藏。

<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174252343437928.png" class="lazy" alt="Using CSS Shapes for Interesting User Controls and Navigation ">
<details>
  <summary>Click to know more!</summary>
  <ul>
    <li>The diamond is now known as the Sancy</li>
    <li>It comprises two back-to-back crowns</li>
    <li>It's likely of Indian origin</li>
  </ul>
</details>
登录后复制
img {
  height: 200px;
  float: left;
  shape-outside: url("diamond.png");
  shape-margin: 20px;
}
summary {
  background: red;
  color: white;
  cursor: pointer;
  font-weight: bold;
  width: 80%; 
  height: 30px;
  line-height: 30px;
}
登录后复制

图像向左浮动,并赋予与图像相同的CSS形状。shape-margin属性在分配给浮动元素的形状周围添加边距空间。当单击<summary></summary>元素时,父<details></details>元素会显示其内容,这些内容会自动沿着浮动钻石图像的形状环绕。

<details></details>元素的内容不一定要像演示中那样是列表。任何内联内容都将沿着浮动图像的形状环绕。

最后一个示例使用多边形形状而不是图像或简单的形状(如圆形和椭圆形)。通过在形状中添加另一个坐标,可以轻松弯曲多边形,从而获得更多有角度的几何形状。

<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174252343443133.png" class="lazy" alt="Using CSS Shapes for Interesting User Controls and Navigation ">
<div>
  <ul>
    <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Home</a></li>
    <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Projects</a></li>
    <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Shop</a></li>
    <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact</a></li>
    <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Media</a></li>
  </ul>
</div>
登录后复制
div {
  width: 0;
  height: 0;
  --d:  200px;
  border-right: var(--d) solid transparent;
  border-bottom: var(--d) solid transparent;
  border-left: var(--d) solid red;
  float: left;
  shape-outside: polygon(0 0, var(--d) 0, 0 var(--d));
}
ul {
  list-style: none;
  padding-top: 25px;
}
登录后复制

使用边框属性创建一个向左浮动的红色三角形。为了创建一个与红色三角形匹配的三角形CSS形状,我们使用polygon函数作为shape-outside属性的值。polygon()函数的值是三角形的三个坐标,用逗号分隔。链接会自动围绕浮动的三角形对齐,沿着三角形的斜边形成倾斜的菜单布局。

如您所见,即使对于用户控件的简单对角线布局,CSS Shapes也能很好地为设计增添一些活力。使用CSS Shapes比旋转一行用户控件要好得多——各个控件和文本的对齐方式也会旋转,从而导致布局异常。相比之下,CSS Shape 只需沿着提供的形状边界布置各个控件。

请注意,以上代码示例中图片路径需要替换成实际的图片路径。 我已尽力保留原文大意,并对部分语句进行了同义词替换和句式调整,以达到伪原创效果。

以上是使用CSS形状进行有趣的用户控件和导航的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
静态表单提供商的比较 静态表单提供商的比较 Apr 16, 2025 am 11:20 AM

让我们尝试在这里造成一个术语:“静态表单提供商”。你带上html

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom 每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom Apr 17, 2025 am 10:55 AM

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

带有HTML对话框元素的一些动手 带有HTML对话框元素的一些动手 Apr 16, 2025 am 11:33 AM

这是我第一次查看HTML元素。我已经意识到了一段时间,但是尚未将其旋转。它很酷,

纸张形式 纸张形式 Apr 16, 2025 am 11:24 AM

购买或建造是技术的经典辩论。自己构建东西可能会感觉更便宜,因为您的信用卡账单上没有订单项,但是

'订阅播客”链接应在哪里? '订阅播客”链接应在哪里? Apr 16, 2025 pm 12:04 PM

有一段时间,iTunes是播客中的大狗,因此,如果您将“订阅播客”链接到喜欢:

托管您自己的非JavaScript分析的选项 托管您自己的非JavaScript分析的选项 Apr 15, 2025 am 11:09 AM

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

See all articles