首页>建站相关>如何用css实现一个导航条的logo

如何用css实现一个导航条的logo

浏览网络的时候看见某个站点的导航条菜单图标很有意思,导航条logo一般都是3条横杠,该站点的其中一条横杠是略短的,鼠标悬停时会动态伸长。尝试着自己利用css实现了类似的效果,考虑将其放入正在修改的wordpress主题当中,先记录一下实现的过程。

relative与absolute

use_css_create_nav_icon_p1

absolute是个很好用的定位方式,它会让元素根据最接近的某个定位方式为relative的父元素确定自己的位置。比如有个方形的父元素,定位方式为relative,这个元素作为图标的容器,在容器当中我们用css画了个圆圈图标,我们希望圆圈位于方块的正中间,我们可以把圆圈定位为absolute,并调整top与left的值。此后无论这个方形被插入到文档的任何位置,该圆圈始终会处于方块的中间。

px与em

em单位体现的是一个比例关系,比如在某元素中设置了一个“font-size:20px”的属性,那么其自身以及子元素都可以用1em来代替20px,我们想设置某个子元素高度为4px的时候,可以利用em的方式改写为0.2em。之所以要用em来代替px,是因为当我们修改父元素中“font-size:20px”为40px的时候,如果子元素的高度为4px,那么子元素高度不变,如果是0.2em,那么子元素的高度会变为0.2*40px,即8px。实现了等比缩放的效果。想象一下,一个图标,被放大了两倍,它内部的线条总得跟着变宽一点吧。

use_css_create_nav_icon_p2

老本行画机械图的,来利用cad的方式来看一下em的计算方式吧:

use_css_create_nav_icon_p3

自己尝试的图标

use_css_create_nav_icon_p4

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{
}
[class^=icon-aug]{
    display:block;
    font-size:100px;
    width:1em;
    height:1em;
    position:relative;
    background:lightblue; 
}
.icon-aug-arrow:before{
    content:'';
    display:block;
    top:0.1491em;
    left:0.2737em;
    width: 0.3525em;
    height: 0.3525em;
    position:absolute;
    border-top: 0.1em solid #333;
    border-left: 0.1em solid #333;
    transform: rotate(-135deg);
}
.icon-aug-navbar:before{
    content:'';
    display:block;
    top:0.448em;
    left:0.18em;
    width: 0.40em;
    height: 0.1em;
    position:absolute;
    background:#333;
}
.icon-aug-navbar:after{
    content:'';
    display:block;
    top:0.24em;
    left:0.18em;
    width: 0.64em;
    height: 0.32em;
    position:absolute;
    border-top: 0.1em solid #333;
    border-bottom: 0.1em solid #333;
}
.icon-aug-search:before{
    content:'';
    display:block;
    position:absolute;
    top:0.18em;
    left:0.18em;
    width:0.34em;
    height:0.34em;
    border:0.1em solid #333;
    border-radius:0.27em;
}
.icon-aug-search:after{
    content:'';
    display:block;
    position:absolute;
    top:0.592em;
    left:0.667em;
    width:0.1em;
    height:0.25em;
    background:#333;
    border-radius:0.05em;
    transform: rotate(-45deg);
}
.icon-aug-position:before{
    content:'';
    display:block;
    position:absolute;
    top:0.18em;
    left:0.2349em;
    width:0.24em;
    height:0.24em;
    border:0.1451em solid #333;
    border-radius:0.2651em;
}
.icon-aug-position:after{
    content:'';
    display:block;
    position:absolute;
    top:0.4451em;
    left:0.2349em;
    background:#333;
    width:0.2651em;
    height:0.2651em;
    border-radius:0 0.2651em 0 0;
    tranform:100% 0 rotate(-45deg);
}
</style>
</head>

<body>
<i class="icon-aug-arrow"></i><br>
<i class="icon-aug-navbar"></i><br>
<i class="icon-aug-search"></i><br>
<i class="icon-aug-position"></i><br>
</body>
</html>

要实现所有图标比例的修改,仅需要修改以下部分的font-size的值;

[class^=icon-aug]{
    display:block;
    font-size:100px;
    width:1em;
    height:1em;
    position:relative;
    background:lightblue; 
}

要实现单个修改图标尺寸,可以给单个图标的类名增加一个font-size属性。

.icon-aug-arrow{
   font-size:20px;
}
icon-aug-navbar{
   font-size:40px; 
}
icon-aug-search{
   font-size:60px; 
}

标签: css

移动端可扫我直达哦~

推荐阅读

css 2024-10-23

在CSS中的如何进行打印设置

之前翻阅wordpress默认主题的时候,看到主题的打印设置占了很大的篇幅,嫌太麻烦所以直接跳过了。这几天想要打印一份博客上的内容,觉得页眉侧栏以及页尾都有点多余,只需要打印博文部分的内容就可以了。于是只能重新去学习关于打印的语法,发...

建站相关 css

css 2023-10-14

Css中的反选伪类“:not()”

该“:not()”伪类用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-class)。描述使用 :not() 时,有几种不寻常的效果和结果需要注意:可以使用此伪类编...

建站相关 css

css 2023-09-06

浮动阴影-为什么我的css浮动元素总是差那么点意思

很多站点都这样的效果,鼠标移上去时对应元素上浮,然后这样的元素往往有一排。博主常见的操作是左右平移几次,然后元素就跟琴键一样依次浮动,看起来非常解压。虽然这个效果有个小小的bug,将鼠标停留在浮动起点与终点的一小块区域,会导致重复触发...

建站相关 css

css 2023-09-04

ios下safari浏览器hover失效的问题

修改主题的时候发现ios下hover子菜单弹出后收不回去,虽然刷新一下页面或者点击一个其他的按钮也能正确关闭,但是始终感觉操作不便。于是安装了一个第三方浏览器(夸克)尝试了一下,第三方浏览器是没有什么问题的,纯属safari的锅。找了...

建站相关 css

css 2023-05-21

一套纯css实现的图标库-ICONO

网络上有很多免费的图标库,比如fontawesome,比如typicons,利用一些小图标来代替呆板的文字描述,可以让页面显得更为简洁而生动。这类图标库也有一些美中不足之处,比如在不同分辨率下,可能产生边缘的锯齿,也可能会有部分几个图...

建站相关 css

css 2023-05-15

text-transform属性控制文本的大小写

看范例站点的css代码,发现这么一条,之前没有接触过这个属性,先就text-transform做个笔记。这个属性会改变元素中的字母大小写,而不论源文档中文本的大小写。如果值为 capitalize,则要对某些字母大写,但是并没有明确定...

建站相关 css

css 2022-12-01

利用css整站加灰色遮罩实现全站变灰

遇到举国同悲的日子,大部分站点会将原本五颜六色的画面呈现为黑白,用黑白的色调,表达对伟人的追思,为逝去的英雄送行。用css就可以很方便的实现全站变灰的效果。外部样式目前绝大多数站点都采用了引用外部css文件的方式,对于这类站点,只需要...

建站相关 css

css 2022-11-25

利用ul+css实现一个分页效果

尝试自定义了一个wordpress的后台设置页面,仅仅是添加了表单,暂时没有写css效果,分页器的页面展现是这样的,想用ul+css实现图片下方这样的效果。为ul添加一个flex属性,可以很方便的让其中包含的li元素排列为一行,为li...

建站相关 css

css 2022-11-05

css中hover悬停动作的行内写法

开通了一个淘宝店铺,觉得页面有点单调,想要添加一些圆角啊悬停变化之类的css效果。淘宝的店招以及导航条可以有限的使用css,而其他模块css功能是需要另行付费的,一年的使用价格是2400元。对于一个营收尚未过千的小店来说,这个价格有点...

建站相关 css