将footer固定在底部

看完这篇文章后决定用第三个方法,其实很想用jq的,方便灵活,咨询了好多老前辈后,得知Js控制DOM在性能上影响比较大,能用css和html解决就不要用js了。
HTML

<div id="container">
  <div>
  .........
  </div>
</div>
<div class="push"><!-- not put anything here --></div>
</div>
<div id="footer">Footer Section</div>

CSS

html,
body{
    height: 100%;
    margin:0;
    padding:0;
}
#container {
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -330px;/*margin-bottom的负值等于footer高度*/
}
.push,
#footer {
    height: 330px;
    clear:both;
}
  1. html和body标签:html,body标签和前两种方法一样,需要设置“height:100%”并重置“margin”和“padding”为0;
  2. div#container:方法三关键部分就在于div#container的设置,首先需要设置其最小高度(min-height)为100%,为了能兼容好IE6,需要对min-height进行兼容处理(具体处理方法看前面或代码)另外这里还有一个关键点在div#container容器上需要设置一个margin-bottom,并且给其取负值,而且值的大小等于div#footer和div.push的高度,如果div#footer和div.push设置了padding和border值,那么div#container的margin-bottom负值需要加上div#footer和div.push的padding和border值。也就是说“div#container{margin-bottom:-[div#footer的height+padding+border]或者-[div.push的height+padding+border]}”。一句话说:div#container的margin-bottom负值需要和div#footer以及div.push的高度一致(如果有padding或border时,高度值需要加上他们);
  3. div.push:在div.push中我们不应该放置任何内容,而且这个div必须放置在div#container容器中,而且是最底部,并且需要设置其高度值等于div#footer的值,最好加上clear:both来清除浮动。div.push容器在此处所起的作用就是将footer往下推。
  4. div#footer容器:div#footer容器和方法二一样,不能放到div#container内部,而和div#container容器同级,如果需要设置元素和footer之间的间距,最好使用padding来代替margin值。

Firefox 打开链接就卡死的解决办法

我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
………………
关闭什么硬件加速跟Flansh沙盒根本没效果有没有。
点击谷歌搜索结果秒卡啊有没有
赶紧打开插件管理器卸载了迅雷插件吧
据说是那个插件一直在检测鼠标点击的链接是否可以下载的原因
不管你信不信,反正我卸载了之后立马流畅了
渣雷啊。。。

MOTO X 国行 解锁、移除BL警告

moto终于回归了,那个激动。第一部手机就是女朋友给我买的moto e398。刷机root想必是安卓用户的一大乐趣,微信上咨询过moto的客服,被明确告知官方不支持解锁bl,root等操作,也不建议这么做。当时心都凉了一半,语音服务在大陆被修改成那样也就算了,不能刷机不能拿来做什么,后续官方不维护的话纯靠民间团队做系统更新啊。我从mi2上深深感受到了这一点的重要性。mi2比nexus 5更新正式版要快多了。不过最终还是没能抵挡住全网通的诱惑,从京东上买了一个32G 黑檀木。


好了,废话不多说,回归正题,其实解锁bl没什么难度。
友情提示:解锁BL会失去质保,三思啊。我是抱着以后出了毛病自己换零件的态度解锁的。反正又没什么难度。
下载moto驱动 https://motorola-global-zn-ch.custhelp.com/app/answers/detail/a_id/91628
下载adb工具包 http://pan.baidu.com/s/1pJxAq8N
驱动安装的话直接下一步即可。
然后解压moto.zip 那个工具包,建议放到D盘或者C盘,总之是根目录
手机上系统里面:设置-开发者选项(如果没有的话请在关于手机里面猛戳最后的版本号)-启用OEM解锁,勾上
关机,同时按电源键和音量减两个按钮,进入FASTBOOT界面,接上USB数据线到电脑。
进工具包目录里(刚刚你自己解压到哪里来着),点那个CMD的快捷方式.
运行命令

fastboot oem get_unlock_data

可以得到类似这样的代码

 waiting for device &gt;
...
3A354XXXXXXXXXXX#54413039303033
XXXXXXXXXXXXXXXX3835000000#B19D
XXXXXXXXXXXXXXXX8746BE4649F42DE
XXXXX#XXXXXXXXXX000000000000000
0000000
OKAY [  0.041s]
finished. total time: 0.042s

注:其中xxx较多的部分是我隐去的,你得到的不会有这么多X
找个记事本把代码中的换行空格什么的都去掉,连成一串。到这个网站上提交 https://motorola-global-portal.custhelp.com/app/standalone/bootloader/unlock-your-device-b
图片就不发了,总共只有一个你能输入的地方,同意下面的协议,点下一步后解锁码会发到你邮箱里。中间可能需要账号注册什么的,自行解决。
然后继续在那个工具里面执行

fastboot oem unlock XXXXXXXXXX

XXXX 即为你的解锁码。
如果你操作的姿势足够正确的话,手机会重启,然后你会看到一个“警告,启动引导程序解锁……”的画面,而且这个画面以后每次开机都会有,是不是好恶心。
这时候手机应该开机了,开发者选项里面勾上usb调试。
下载 http://pan.baidu.com/s/1ntyuvyT
解压里面的logo.bin,跟刚刚的工具包放在同一个目录下,运行

adb reboot bootloader 
fastboot flash logo logo.bin #这条等到手机重启进入fastboot了再运行

然后,像以前一样正常开机吧。
正在体验牛叉中,心情很激动,如果上文有错别字请告知。

Discuz! X3.2 补充个人信息任务插件修改

想更改补充信息的条件找不到选项有没有。。。
位置

source/class/task/task_profile.php

关键句

$fields = array('realname', 'gender', 'birthyear', 'birthmonth','birthday','bloodtype','affectivestatus','birthprovince','birthcity','resideprovince', 'residecity');

把红字换成必须完成的字段即可。
下面是对照表

('realname', 1, 0, 0, '真实姓名', '', 0, 0, 0, 0, 0, 0, 1, 'text', 0, '', '');
('gender', 1, 0, 0, '性别', '', 0, 0, 0, 0, 0, 0, 1, 'select', 0, '', '');
('birthyear', 1, 0, 0, '出生年份', '', 0, 0, 0, 0, 0, 0, 1, 'select', 0, '', '');
('birthmonth', 1, 0, 0, '出生月份', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('birthday', 1, 0, 0, '生日', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('constellation', 1, 1, 0, '星座', '星座(根据生日自动计算)', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('zodiac', 1, 1, 0, '生肖', '生肖(根据生日自动计算)', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('telephone', 1, 1, 0, '固定电话', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('mobile', 1, 1, 0, '手机', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('idcardtype', 1, 1, 0, '证件类型', '身份证 护照 驾驶证等', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '身份证\n护照\n驾驶证', '');
('idcard', 1, 1, 0, '证件号', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('address', 1, 1, 0, '邮寄地址', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('zipcode', 1, 1, 0, '邮编', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('nationality', 0, 0, 0, '国籍', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('birthprovince', 1, 0, 0, '出生省份', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('birthcity', 1, 0, 0, '出生地', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('birthdist', 1, 0, 0, '出生县', '出生行政区/县', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('birthcommunity', 1, 0, 0, '出生小区', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('resideprovince', 1, 0, 0, '居住省份', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('residecity', 1, 0, 0, '居住地', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('residedist', 1, 0, 0, '居住县', '居住行政区/县', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('residecommunity', 1, 0, 0, '居住小区', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '');
('residesuite', 0, 0, 0, '房间', '小区、写字楼门牌号', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('graduateschool', 1, 0, 0, '毕业学校', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('education', 1, 0, 0, '学历', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '博士\n硕士\n本科\n专科\n中学\n小学\n其它', '');
('company', 1, 0, 0, '公司', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('occupation', 1, 0, 0, '职业', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('position', 1, 0, 0, '职位', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('revenue', 1, 1, 0, '年收入', '单位 元', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('affectivestatus', 1, 1, 0, '情感状态', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('lookingfor', 1, 0, 0, '交友目的', '希望在网站找到什么样的朋友', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('bloodtype', 1, 1, 0, '血型', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, 'A\nB\nAB\nO\n其它', '');
('height', 0, 1, 0, '身高', '单位 cm', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('weight', 0, 1, 0, '体重', '单位 kg', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('alipay', 1, 1, 0, '支付宝', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('icq', 0, 1, 0, 'ICQ', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('qq', 1, 1, 0, 'QQ', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('yahoo', 0, 1, 0, 'YAHOO帐号', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('msn', 1, 1, 0, 'MSN', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('taobao', 1, 1, 0, '阿里旺旺', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('site', 1, 0, 0, '个人主页', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('bio', 1, 1, 0, '自我介绍', '', 0, 0, 0, 0, 0, 0, 0, 'textarea', 0, '', '');
('interest', 1, 0, 0, '兴趣爱好', '', 0, 0, 0, 0, 0, 0, 0, 'textarea', 0, '', '');
('field1', 0, 1, 0, '自定义字段1', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field2', 0, 1, 0, '自定义字段2', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field3', 0, 1, 0, '自定义字段3', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field4', 0, 1, 0, '自定义字段4', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field5', 0, 1, 0, '自定义字段5', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field6', 0, 1, 0, '自定义字段6', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field7', 0, 1, 0, '自定义字段7', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');
('field8', 0, 1, 0, '自定义字段8', '', 0, 0, 0, 0, 0, 0, 0, 'text', 0, '', '');

CNNIC 证书清理

不解释
Firefox 选项-高级-证书
找到 CNNIC 选项下有两个证书,直接选删除或不信任,删除即可,发现还多了一个 China Internet Network Information Center 中国互联网信息管理中心,同样删除。
chrome在linux下默认用系统中的证书
安装证书管理工具

sudo yum install nss-tools

运行

certutil -d sql:$HOME/.pki/nssdb -L

不出意外的话应该是有CNNIC和中国互联网管理中心的证书的
运行下面两条命令删除即可

certutil -d sql:$HOME/.pki/nssdb -D -n "CNNIC ROOT"
certutil -d sql:$HOME/.pki/nssdb -D -n "China Internet Network Information Center EV Certificates Root"

然后可以分别用firefox和chrome访问一下https://www.cnnic.cn
如果不能正常访问,就代表删除成功了。

fedora 屏幕亮度不能调整

ACER4750 之前一直没管屏幕亮度,不能用 fn+←→完全没用。今天感觉实在是太刺眼了,遂放狗去搜解决方法。记录下。 

vi /etc/default/grub 

添加

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

保存后再运行grub更新下配置即可

sudo grub2-mkconfig -o /boot/grub2/grub.cfg