登 录
注册
Search
标签搜索
技术教程
typecho
JavaScript
成长日记
Joe主题
Typecho主题
前端学习
网站搭建
typecho函数
影视分享
情感
css
帮助文档
虚拟机
服务器
typecho编辑器
插件
Linux
typecho插件
Windows
Brains - 灵感乌托邦
累计撰写
81
篇文章
累计收到
4,290
条评论
文章首页
分类栏目
技术教程
Typecho
程序代码
学习笔记
Web前端
CSS
JavaScript
其他文章
生活
独立页面
胡言乱语
生活吐槽
友情链接
网站统计
关于博主
自建图床
自建网盘
博主推荐
灵感宝物库
灵感图床库
Code-Server
在线工具箱
TypechoDoc
在线转换
灵感导航页
登录
丨
注册
CSS
(共
5
篇)
搜索到
5
篇与
CSS
的结果
『原创』『教程』给自己博客的侧栏增加社交信息,方便业务(PY)联系
前言前不久突发奇想,录了一个视频然后留了自己的博客,却发现博客却没有链接回去的方式,所以就写了一个社交信息的侧栏模块然后有小伙伴看到了,专门留言让我出个教程,当时答应的好好的,可是一连鸽了好几天,今天进入留言板看到许诺的话,不禁老脸一红,差点忘了这茬了 ::(狂汗) 成果展示博客的侧栏增加社交信息2.0 这个模块适合任何主题及程序,只需要根据自己的主题或者程序进行改进就行我这里演示的是我正在使用的Joe主题,是一款轻量、开源的主题{tabs}{tabs-pane label="PC展示"}{/tabs-pane}{tabs-pane label="PE展示"}{/tabs-pane}{/tabs}教程开始一、添加PC端打开 Joe/public/aside.php 文件,然后在想要增加的位置添加以下代码{tabs}{tabs-pane label="代码"}隐藏内容,请前往内页查看详情{/tabs-pane}{tabs-pane label="位置"}{/tabs-pane}{/tabs}二、添加PE端打开 Joe/public/header.php 文件,然后在想要增加的位置添加上面PC的代码PE端的代码和上面的一样,只需要将 <section class="top-social"> 换成 <section class="top-social pe-social"> 三、添加后台直接在 Joe/functions.php 添加以下代码(当然,如果看过我之前的文章,也可以放在 Joe/public/custom.php 里面)// 侧栏社交信息开关 $SocialSwitch = new Typecho_Widget_Helper_Form_Element_Select( 'SocialSwitch', array( 'off' => '关闭(默认)', 'on' => '开启PC社交信息', 'on1' => '开启PE社交信息', 'on2' => '同时开启PC与PE社交信息', ), 'off', '是否启用侧栏社交信息', '介绍:开启后,侧栏展示社交信息功能(必须填写下面的侧栏社交信息)' ); $SocialSwitch->setAttribute('class', 'joe_content joe_custom'); //没有custom.php就把joe_custom改成joe_other $form->addInput($SocialSwitch->multiMode()); //侧栏社交信息 $SocialInfo = new Typecho_Widget_Helper_Form_Element_Textarea( 'SocialInfo', NULL, NULL, '侧栏社交信息', '介绍:用于设置侧栏社交信息 <br /> 格式:你的QQ号 || 你的微信二维码链接 || 你的B站ID || 你的微博ID<br /> 例如:123456 || https://www.a.con/a.png || 13503064 || 3125196513 ' ); $SocialInfo->setAttribute('class', 'joe_content joe_custom'); //没有custom.php就把joe_custom改成joe_other $form->addInput($SocialInfo);然后你网站后台主题就会出现这样两项,根据相应的格式把你的信息填进去就行了四、添加显示样式在 Joe/assets/css/joe.global.min.css 里添加以下样式我这里的样式是已经压缩了的,如果想要自己修改,只需要在代码编辑器里格式化以下就行了.top-social{position:relative;padding:10px 0;width:250px;display:flex;flex-wrap:wrap;background:var(--background);justify-content:space-around;margin-bottom:15px;border-radius:var(--radius-wrap);box-shadow:var(--box-shadow)}.top-social li{width:50px;text-align:center;padding:5px 0px}.top-social li img{height:25px}.top-social .wechat{position:relative}.top-social .wechat .wechatInner{display:none;position:absolute;box-shadow:0px 1px 4px 2px var(--theme);border-radius:var(--radius-wrap);transition:.7s all ease;background:var(--background);-webkit-transition:.7s all ease;top:-175px;left:-45px;transform:translate3d(0, 16px, 0);width:140px;height:140px}.top-social .wechat .wechatInner::before{content:"";position:absolute;bottom:-16px;left:0;right:0;margin:auto;display:inline-block;width:0px;border:18px solid transparent;border-bottom:none;border-top-color:#fff;filter:drop-shadow(0px 4px 2px var(--theme))}.top-social .wechat .wechatInner img{border-radius:var(--radius-wrap);width:140px;height:auto;padding:0;background:none}.top-social .wechat:hover .wechatInner{display:block}.pe-social{width:100%}结语教程到此就结束了,其实还是很简单的不过我又想把这个模块做成填写ico图片链接和跳转链接的自定义模块,就可以自由添加更多的社交信息但是那样只能舍弃微信那个移入弹窗的效果,所以很难取舍呀{timeline}{timeline-item color="#19be6b"}2022.3.16 在这里挖一个坑吧:利用JS选择对应的元素,实现微信的弹窗效果(令人头秃 :@(哭泣) ){/timeline-item}{timeline-item color="#ed4014"}2022.3.19 Flag已实现,请移步 侧栏社交信息2.0 {/timeline-item}{/timeline}
2022年03月16日
15,823 阅读
80 评论
21 点赞
2022-03-16
『原创』『教程』首页及文章页滚动广告栏
前言因为之前在很多网站上都能看到广告,虽然但是,这对很多博主来说也是一笔额外的收入,我一直是入不敷出!:@(吐血倒地) 然后我看到了执念博客的首页广告栏,虽然曝光确实大,但是用户体验极其不好,因为要翻很多广告才能翻到文章,就像这样:所以我就想到了滚动广告,一个广告的位置,能够显示多条广告成果展示{tabs}{tabs-pane label="首页"}{/tabs-pane}{tabs-pane label="文章页"}{/tabs-pane}{/tabs}教程开始灵感及相关代码来自于Joe主题的首页轮播图一、添加后台打开 functions.php 添加以下代码{tabs}{tabs-pane label="代码"}$JADPost = new Typecho_Widget_Helper_Form_Element_Textarea( 'JADPost', NULL, NULL, '文章页顶部广告', '介绍:用于设置文章页顶部广告 <br /> 格式:广告图片 || 跳转链接 (中间使用两个竖杠分隔)<br /> 注意:如果您只想显示图片不想跳转,可填写:广告图片 || javascript:void(0) <br /> 其他:一行一个,一行代表一个轮播广告图' ); $JADPost->setAttribute('class', 'joe_content joe_post'); $form->addInput($JADPost);{/tabs-pane}{tabs-pane label="代码位置"}因为有位小伙伴放错了位置,所以再贴一张图{/tabs-pane}{/tabs}这是文章页的代码,因为首页广告主题自带了二、添加滚动广告栏{tabs}{tabs-pane label="首页"} 因为首页已经有广告位了,所以直接替换就行了将主题 index.php 的以下代码直接替换为新代码{collapse}{collapse-item label="代码位置" open}{/collapse-item}{collapse-item label="新代码" open}隐藏内容,请前往内页查看详情{/collapse-item}{/collapse}{/tabs-pane}{tabs-pane label="文章页"}文章页直接在主题的 post.php 文件内合适的地方加入以下代码{collapse}{collapse-item label="代码位置" open}{/collapse-item}{collapse-item label="代码" open}隐藏内容,请前往内页查看详情{/collapse-item}{/collapse}{/tabs-pane}{/tabs}三、修改广告栏样式{tabs}{tabs-pane label="首页"} 直接在 Joe/assets/css 打开 joe.index.min.css 然后在最后添加以下代码.joe_index__ad .swiper-container{height: 180px!important;border-radius: var(--radius-inner);}.joe_index__ad .swiper-container .icon{position:absolute;z-index:1;top:10px;right:10px;font-size:12px;background:rgba(0,0,0,0.25);padding:2px 5px;border-radius:2px;color:#ebebeb;pointer-events:none}@media (max-width: 768px){.joe_index__ad .swiper-container{height: 120px!important}.joe_index__ad .swiper-container .image{height: 120px;object-fit: cover;border-radius: var(--radius-inner);}}{/tabs-pane}{tabs-pane label="文章页"}直接在 Joe/assets/css 打开 joe.post.min.css 然后在最后添加以下代码.joe_post__ad .swiper-container{height: 180px!important;margin-top:15px;border-radius: var(--radius-inner);}.joe_post__ad .swiper-container .icon{position:absolute;z-index:1;top:10px;right:10px;font-size:12px;background:rgba(0,0,0,0.25);padding:2px 5px;border-radius:2px;color:#ebebeb;pointer-events:none}@media (max-width: 768px){.joe_post__ad .swiper-container{height: 120px!important}.joe_post__ad .swiper-container .image{height: 120px;object-fit: cover;border-radius: var(--radius-inner);}}{/tabs-pane}{/tabs}四、添加滚动效果{tabs}{tabs-pane label="首页"}首页因为引入了滚动效果,所有不需要设置,会直接调用首页轮播图的滚动效果但是会根据首页轮播图的滚动方式滚动,效果不太好,暂时没想到比较好的解决方法{/tabs-pane}{tabs-pane label="文章页"}首先在主题的 post.php 文件内 <head>标签内加入以下代码<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@5.4.5/css/swiper.min.css" /> <script src="https://cdn.jsdelivr.net/npm/swiper@5.4.5/js/swiper.min.js"></script>然后再在 Joe/assets/js 打开 joe.post_page.min.js 然后在最后添加以下代码if(0!==$(".joe_post__ad .swiper-container").length){let e="vertical";new Swiper(".swiper-container",{keyboard:!1,direction:e,loop:!0,autoplay:!0,mousewheel:!0,pagination:{el:".swiper-pagination"},})}添加位置{/tabs-pane}{/tabs}教程结束大功告成,快刷新你的网站看看效果吧!
2021年10月15日
33,666 阅读
77 评论
898 点赞
2021-10-15
『笔记』『代码』CSS3 Flex 布局详解文档
网页布局(layout)是 CSS 的一个重点应用布局的传统解决方案,基于 盒状模型 ,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。Flex 布局将成为未来布局的首选方案。本文介绍它的语法。一、Flex 布局是什么?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。.box{ display: flex; }行内元素也可以使用 Flex 布局。.box{ display: inline-flex; }Webkit 内核的浏览器,必须加上 -webkit 前缀。.box{ display: -webkit-flex; /* Safari */ display: flex; }注意,设为 Flex 布局以后,子元素的 float 、 clear 和 vertical-align 属性将失效。二、基本概念采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做 main start ,结束位置叫做 main end ;交叉轴的开始位置叫做 cross start ,结束位置叫做 cross end 。项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做 cross size 。三、容器的属性以下6个属性设置在容器上。{card-describe title=" flex-direction "}flex-wrapflex-flowjustify-contentalign-itemsalign-content{/card-describe}3.1 flex-direction属性flex-direction 属性决定主轴的方向(即项目的排列方向)。.box { flex-direction: row | row-reverse | column | column-reverse; }它可能有4个值。row (默认值):主轴为水平方向,起点在左端。row-reverse :主轴为水平方向,起点在右端。column :主轴为垂直方向,起点在上沿。column-reverse :主轴为垂直方向,起点在下沿。3.2 flex-wrap属性默认情况下,项目都排在一条线(又称"轴线")上。 flex-wrap 属性定义,如果一条轴线排不下,如何换行。.box{ flex-wrap: nowrap | wrap | wrap-reverse; }它可能取三个值。(1)nowrap(默认):不换行。(2)wrap:换行,第一行在上方。(3)wrap-reverse:换行,第一行在下方。3.3 flex-flowflex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap 。.box { flex-flow: <flex-direction> || <flex-wrap>; }3.4 justify-content属性justify-content 属性定义了项目在主轴上的对齐方式。.box { justify-content: flex-start | flex-end | center | space-between | space-around; }它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。flex-start (默认值):左对齐flex-end :右对齐center : 居中space-between :两端对齐,项目之间的间隔都相等。space-around :每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。3.5 align-items属性align-items属性定义项目在交叉轴上如何对齐。.box { align-items: flex-start | flex-end | center | baseline | stretch; }它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。flex-start :交叉轴的起点对齐。flex-end :交叉轴的终点对齐。center :交叉轴的中点对齐。baseline : 项目的第一行文字的基线对齐。stretch (默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。3.6 align-content属性align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。.box { align-content: flex-start | flex-end | center | space-between | space-around | stretch; }该属性可能取6个值。flex-start :与交叉轴的起点对齐。flex-end :与交叉轴的终点对齐。center :与交叉轴的中点对齐。space-between :与交叉轴两端对齐,轴线之间的间隔平均分布。space-around :每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。stretch (默认值):轴线占满整个交叉轴。四、项目的属性以下6个属性设置在项目上。orderflex-growflex-shrinkflex-basisflexalign-self4.1 order属性order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。.item { order: <integer>; }4.2 flex-grow属性flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。.item { flex-grow: <number>; /* default 0 */ }如果所有项目的 flex-grow 属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的 flex-grow 属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。4.3 flex-shrink属性flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。.item { flex-shrink: <number>; /* default 1 */ }如果所有项目的 flex-shrink 属性都为1,当空间不足时,都将等比例缩小。如果一个项目的 flex-shrink 属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效。4.4 flex-basis属性flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为 auto ,即项目的本来大小。.item { flex-basis: <length> | auto; /* default auto */ }它可以设为跟 width 或 height 属性一样的值(比如350px),则项目将占据固定空间。4.5 flex属性flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。4.6 align-self属性align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }该属性可能取6个值,除了auto,其他都与 align-items 属性完全一致。转自: Lovestu
2021年06月03日
1,690 阅读
4 评论
25 点赞
2021-06-03
『原创』『代码』为你的博客添加悬浮打赏按钮(按钮切换)
前言博客搭建已经有一段时间了,文章也写了不少了(虽然有些是扒的:@(狂汗)XD)但是前几天有人发消息说觉得我的文章帮到他了,想要打赏,却没有打赏途径找了很久,除了几个插件就没有我心仪的,但是插件又要下载上传,太麻烦了 XD所以我就用自学的HTML写了一个悬浮打赏按钮,添加到文章点赞旁边,效果很好,我非常满意,所以现在分享出来成果展示{tabs}{tabs-pane label="第一版"}{/tabs-pane}{tabs-pane label="第二版"}{/tabs-pane}{tabs-pane label="切换版"}{/tabs-pane}{/tabs}版本升级当我把这个功能做好后,发给要打赏我的人时,Ta却说打赏不了,在微信中总是识别成支付宝的链接 :@(吐血倒地) 然后我自己试了一下,发现确实会识别错位,不知道是不是支付宝的二维码更要强一些,识别十次九次都是支付宝链接,打赏的人都不想给我打赏了,气死我了 :@(内伤) {dotted startColor="#ff6c6c" endColor="#1989fa"/}然后我就想到了点击切换二维码,说干就干,首先我用css试了很久,发现光用css已经实现不了我的需求了然后我就开始琢磨JS来实现,开始用了if语句来切换 img 的 url ,确实可以切换了,但是if语句只能对应一个按钮,如果别人不知道按钮可以切换,那就仅显示一个二维码突然想到,既然用js了,那为什么不直接根据不同的 input 按钮给 img 赋值呢,然后我就写了三段赋值语句(学艺不精啊) :@(尴尬) 然后就实现了一个按钮切换一个二维码了{dotted startColor="#ff6c6c" endColor="#1989fa"/}再发给要打赏我的人,结果.... :@(无奈) 只打赏了0.01元 :@(扇耳光)代码分享其实这个功能很简单,其实就是CSS的 :hover 来实现的我使用的是Joe主题,所以我直接添加在点赞旁边,让它看看起来跟整个主题更协调首先找到Joe主题目录中的点赞文件 public/handle.php 再在点赞按钮后添加以下代码隐藏内容,请前往内页查看详情添加到 public/handle.php 的倒数第二行保存后,刷新网站,打赏按钮就出现了,试着把鼠标移上去看看效果吧!切换版下载
2021年04月05日
25,194 阅读
207 评论
1,277 点赞
2021-04-05
『原创』『教程』给你的Typecho博客侧边栏加一个恋爱计时(修复夜间模式样式)
前言前几天在翻主页的时候,看到 Nots 分享了他和他女朋友的甜蜜日常。然后注意到了他网站侧栏的小部件,有一个他和他女朋友恋爱的计时模块,很感兴趣我刚好也想给自己女朋友制作一点小浪漫,所以就着手把他分享的代码搬了过来,做了一些优化紧急修复刚测试时发现夜间模式下,会直接透明显示,没有浮块显示我估计是主题作者忘记给自定义模块设置背景色了,所以显示很不协调,就像这样所以我又调用了Joe主题的CSS样式,让这个模块会根据日间模式和夜间模式改变背景颜色,达到和其他模块样式统一顺便修改了这个模块的文字颜色,夜间模式下不会再是一片漆黑了(PE端同时修复)成果展示{tabs}{tabs-pane label="PC端"}{/tabs-pane}{tabs-pane label="手机端"}{/tabs-pane}{/tabs}实现方法本教程仅适用于typecho且使用了Joe主题的小伙伴,其他主题或者博客的小伙伴请自行发挥你们的才能{tabs}{tabs-pane label="PC端"}{callout color="#f0ad4e"}PC端代码:(样式我已经根据Joe主题适配好了,不喜欢的自己修改){/callout}{mtitle title="在文章最后下载"/}如果是使用的 Joe for typecho ,那就很简单了,直接在后台的主题设置里登录你的网站后台,进入 外观设置-网站外观-设置外观(必须使用Joe主题)-侧栏设置找到 自定义侧边栏模块-PC 保存好后,再刷新自己的网站就可以看到了!{/tabs-pane}{tabs-pane label="PE端"}{callout color="#ab74e4"}PE端代码:(因为是后端代码,所以我就直接套用了Joe主题的样式){/callout}{mtitle title="在文章最后下载"/}手机端的侧栏要复杂一点,但你都进入我的博客了,那我肯定要手把手把你教会了:@(得意)如果你懂一些 HTML,那就很容易能找到PE端的侧栏文件PE端的样式配置在 Joe/public/header.php里那我们直接在 header.php 添加代码就行了,找到PE端侧栏配置位置然后找到想要加入的位置,可以加在作者信息下,也可以加在网站统计下我是加在了作者信息下,可以更为直接显示,也更明显,主要是女朋友能够一眼就看到:@(得意)当然这里添加的代码跟上面的是有一点区别的,我试了几次,发现同样的代码会出现PE端显示,而PC端文字不显示测试了很多次,终于被我发现,原来是 JS 的 id 重复了,导致PHP后端的id占用了前端的id而因为PE端的代码是直接加在源代码里的,所以导致PC端文字不显示了因此我又对代码进行了优化,没错,从发现bug-测试bug-修改bug又磨了我一小时:@(喷血)注意:因为是修改了后端代码,每次更新Joe的主题时都会被覆盖,所以每次更新主题后记得去 header.php 重新添加代码希望Joe主题作者后期能够添加自定义PE侧栏的功能,或者不要更新太频繁 :@(扇耳光){/tabs-pane}{/tabs}结语教程到此结束,祝各位早日找到心仪的另一半,幸福美满!感谢 Nots 分享的代码。代码下载
2021年03月08日
33,474 阅读
170 评论
669 点赞
2021-03-08