分类 Web开发 下的文章

用纯CSS实现三角图标

在前端开发中,经常遇到这样的三角图标。

请输入图片描述

虽然美术设计人员可能已经帮你切好了图片,用CSS的绝对定位往上一摆即可。但这是最原始的方法,主框一旦改动,三角图标也得跟着改动。

现在来看如何用纯CSS实现三角图标,它的优点非常明显,不用修改图片,而且减少了网络请求。我找到 2 种方法来制作这样的三角图标。

1.边框法

对一个宽高均为 0 的容器,设置一定宽度的边框。其中一条边的颜色为三角图标所需的颜色,其余边框颜色设为透明。这个容器看起来就分成了 4 份,每一份成为一个三角形,这就是它的四条边。为了减少容器的大小,所需三角形的对边可设置为 0。代码如下:

.triangle {
    display: block;
    width: 0;
    height: 0;
    border-width: 0 10px 10px;  /* 设定横向边框的宽度小于竖向边框,可以形成长三角形 */
    border-style: solid;
    border-color: transparent transparent red;
}

发挥你的想象,还可以组合成其它效果的箭头。例如气泡效果的长斜箭头,可以使用容器的上右部分2个三角来组合,并且将容器设置成竖向的长方形。

2.旋转法

这种方法需要两个容器,外层容器限定范围,内层容器用于制作三角图形。将内层容器的背景色设置为所需三角形的颜色,再将其旋转45度,然后将其偏移(如向下偏移则形成上三角),并且设置外层容器溢出的截断。

<span class="arrow"><span></span></span>

span.arrow {
    display: block; 
    width: 15px;  /* 宽高设置为内层容器对角线的长度,或者略大一点 */
    height: 15px; 
    overflow: hidden;
}
span.arrow span {
    position: relative;
    top: 10px; 
    display: block; 
    width: 8px; 
    height: 8px; 
    margin: 0 auto; 
    border: 1px solid #cdd2d9; 
    background-color: #f7f7f7; 
    transform: rotate(45deg);
    -ms-transform: rotate(45deg);  /* IE 9 */
    -webkit-transform: rotate(45deg);  /* Safari and Chrome */
    -moz-transform: rotate(45deg);  /* Firefox */
    -o-transform: rotate(45deg);  /* Opera */
}

旋转法的优点是,可以制作带连线的三角,并且可以增加阴影、渐变等效果。但这是 CSS3 的特性,必须使用支持 CSS3 的浏览器。

Ubuntu:如何制作桌面快捷方式和启动器快捷方式

有时候在 Ubuntu 上安装软件,却没有自动生成桌面快捷方式或者启动器快捷方式。甚至有些软件根本就不用安装,解压即可使用。

如果经常使用这个软件,我们可以自己制作快捷方式。

一般地,通过软件中心安装的软件会有图标,并能加入到启动器上,这是因为它们有一个 desktop 配置文件的缘故。这些配置文件在 /usr/share/applications 这个文件夹下面。

以 Sublime Text 为例,它是一款小巧的代码编辑器,在 Ubuntu 下不需要安装。我们可以照着其它的 desktop 文件写一个 Sublime Text 的快捷方式:

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Sublime Text 2
Comment=Sublime Text 2
Exec=/home/eric/Downloads/SublimeText2/sublime_text
Icon=/home/eric/Downloads/SublimeText2/Icon/48x48/sublime_text.png
Terminal=false
Type=Application
Categories=Application;Development;
StartupNotify=true

Name: 软件名称
Comment: 注释
Exec: 可执行文件的路径
Icon: 图标路径,Sublime Text 默认有各种尺寸的图标

这样,通过图形界面打开文件浏览器,在 /usr/share/applications 目录下可以找到刚刚创建的快捷方式。可以把它复制到桌面,或者拖到侧边的启动器中。

注意:这个文件必须是可执行的。如果没有执行权限,可以这样添加 chmod a+x sublime-text-2.desktop 。(20150402:没有可执行权限也可以。)

Win8 下安装 Ubuntu 虚拟机

之前想在自带 Win8 系统的笔记本上安装 Win7,折腾许久,还没有成功。

想必装 Ubuntu 也一样。因此打算装个虚拟机,VMware 是老牌虚拟机软件,但过于厚重。所以我选择了 VirtualBox,它是一款开源虚拟机软件,更加轻量,最新安装包只有100M。目前属于 Oracle 旗下软件。

可以前往官网下载最新安装包

VirtualBox 的主界面非常简洁,易于使用。事先下载需要安装系统的iso文件,在软件上“新建”一个虚拟机即开始安装。

准备工作

  1. VirtualBox (笔者使用的是 VirtualBox 4.3.10 for Windows hosts )
  2. 待安装的操作系统 Ubuntu 的光盘镜像文件 (笔者使用的是 ubuntu-12.04.4-desktop-i386.iso )

笔者所使用的计算机环境:ThinkPad X230i,自带 Win8 操作系统(并且已升级到 8.1),系统显示是 64 位操作系统,但 VirtualBox 提示只能安装 32 位的系统。(不知道什么原因,知道的朋友,不妨告诉我。多谢!)

开始安装

安装非常简单,首先新建一个虚拟机,可以按默认设置一路下去。

然后启动刚刚建好的虚拟机,会提示指定光盘,选择下载好的 Ubuntu 镜像文件,即进入操作系统的安装界面。类似于从光驱安装,根据提示,自己选择就行。不过安装时间,可能会比较长。因为安装过程中会通过网络下载相关的文件,如语言包等。到安装成功,大约需要半小时。英文不好的同学,建议选择汉语,便于理解。

遇到的问题

1.屏幕分辨率无法调整,最大只有 1024*768,两边还空出很多屏幕。另外就是,鼠标滚轮无效。

解决办法:在运行的虚拟机界面,点击左上角菜单项“设备” > “安装增强功能”。它会将 VirtualBox 目录下的增强功能包载入到光驱,然后自动执行安装。安装完毕后,这两个问题解决。

2.启动时提示:

SMBus base address uninitialized - upgrade BIOS or use force_addr=0xaddr

但仍然可以启动,没有太大影响。

Ubuntu 社区给的答案是:

This error is caused by VM having no smbus but Ubuntu always trying to load the module. It doesn't affect anything but is a bit annoying.

(1) Check module is being loaded / 检查模块是否已经加载(会看到已经加载)

lsmod | grep i2c_piix4

(2) If so, blacklist it in the file /etc/modprobe.d/blacklist.conf, by adding the following to the end of the file: / 如果已经加载,将它加入 blacklist 列表。方法是修改这个文件 /etc/modprobe.d/blacklist.conf ,将下面的配置写到该文件末尾。

blacklist i2c_piix4

(3) Update the initramfs

sudo update-initramfs -u -k all

You might want to optionally remove unneeded kernal images before updating the initramfs to cut down on how long that part takes.

笔者按此操作,可以解决。

其它

1.Ubuntu虚拟机在笔者的电脑上运行有点慢,主要体现在图形界面显示迟缓。在 VirtualBox 的虚拟机设置中加大内存,会有好转。想把 Ubuntu 作为日常使用的系统,独立安装应该会更好。

2.更新软件后,可能又会出现屏幕分辨率无法适配。再次运行“安装增强功能”即可。

3.在安装时,并没有要求设置 root 密码。如果想使用 root 帐号,可以重设其密码:

sudo passwd root

Ubuntu 常用命令 apt-get

问题

对于新手,通过 apt-get install 安装软件,很可能遇到这样的问题:

E: Unable to locate package xxx

这是因为无法找到相应的包。

分析:很可能是软件源的问题,要么源有问题,要么更换了源,没有更新(apt-get update)。

如过源有问题,可以更换源。国内推荐选择163的源,如:

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

具体请参考Ubuntu镜像使用帮助

命令解读

与 apt-get 相关的目录和文件:

/etc/apt/sources.list
该文件存放软件源站点,当执行apt-get install xxx时,Ubuntu 就去这些站点下载软件包到本地并执行安装。需要更换源站点可以参考源列表。注意:更换源站点,必须执行更新命令apt-get update才能生效。

/var/lib/dpkg/available
该文件的内容是软件包的描述信息, 其中包括当前系统中已安装的和未安装的软件包。

/var/cache/apt/archives/
该目录是使用 apt-get install 安装软件时,软件包的临时存放路径。

/var/lib/apt/lists/
使用 apt-get update 命令会从 /etc/apt/sources.list 中下载软件列表,并保存到该目录。

Ubuntu英文版无法正常显示中文,如何安装中文字体?

装了英文版 Ubuntu,结果中文显示异常,如下图示
中文界面字体异常

如何解决呢

查看 Ubuntu 字体文件夹(/usr/share/fonts/truetype/),其中没有中文字体。而一般网站默认字体是宋体,那么我们需要下载宋体,并把它复制到这个字体文件夹即可。

本文提供的字体,下载后解压缩,然后复制到字体文件夹,刷新页面即可正常显示中文。如果需要更多中文字体,可以去下载并复制到这个目录。也可以直接从 Windows 系统的字体文件夹(C:\Windows\Fonts\)复制过来使用。