<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>阿信博客</title><link>https://xin.el0310.com/</link><description>Good Luck To You!</description><item><title>小程序生成带参数二维码避坑记录</title><link>https://xin.el0310.com/index.php/post/312.html</link><description>&lt;p&gt;一个小程序开发过程中，需要生成带参数的二维码。开发中遇到了一些坑，记录一下，以免下次入坑&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;一、PHP端&lt;/p&gt;&lt;p&gt;使用easywechat5.x版本，可以使用以下方法生成带参数的二维码&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;$app-&amp;gt;app_code-&amp;gt;getUnlimit(string&amp;nbsp;$scene,&amp;nbsp;array&amp;nbsp;$optional&amp;nbsp;=&amp;nbsp;[]);&lt;/pre&gt;&lt;p&gt;注意事项：&lt;br/&gt;&lt;/p&gt;&lt;p&gt;坑一：$scene尽量不要使用`a=1&amp;amp;b=2&amp;amp;c=3`的形式，可以使用`1-2-3`的形式传递参数，然后在小程序端解析出三个参数值。&lt;/p&gt;&lt;p&gt;坑二：$scene中不用包含&amp;#39;scene=&amp;#39;，也就是说不要写成&amp;#39;scene=1-2-3&amp;#39;，直接写成&amp;#39;1-2-3&amp;#39;即可&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;二、小程序端&lt;/p&gt;&lt;p&gt;因为有时候用 onLoad(options) 里面的 options 获取不到，所以需要用 wx.getLaunchOptionsSync() 来获取参数。 因为小程序码在传递参数的时候，会对参数进行encodeURIComponent编码，所以要用decodeURIComponent进行解码，才可以正常使用。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;onLoad:function(option){
	let&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;wx.getLaunchOptionsSync();
	let&amp;nbsp;query&amp;nbsp;=&amp;nbsp;null;
	if(option.scene&amp;nbsp;||&amp;nbsp;obj.query.scene){
		query&amp;nbsp;=&amp;nbsp;option&amp;nbsp;?&amp;nbsp;decodeURIComponent(option.scene)&amp;nbsp;:&amp;nbsp;decodeURIComponent(obj.query.scene);
		console.log(query)
		//参数一
		this.query1&amp;nbsp;=&amp;nbsp;query.split(&amp;quot;-&amp;quot;)[0];
		console.log(this.query1);
		//参数二
		this.query2&amp;nbsp;=&amp;nbsp;query.split(&amp;quot;-&amp;quot;)[1];
		console.log(this.query2);
		//参数三
		this.query3&amp;nbsp;=&amp;nbsp;query.split(&amp;quot;-&amp;quot;)[2];
		console.log(this.query3);
		//业务逻辑
	}else&amp;nbsp;{
		//业务逻辑2
	}
},&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;后端程序代码&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;/**
&amp;nbsp;*&amp;nbsp;清理指定场景下的所有二维码
&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\think\response\Json
&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\Exception
&amp;nbsp;*/
public&amp;nbsp;function&amp;nbsp;clearQrcode():&amp;nbsp;\think\response\Json
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data&amp;nbsp;=&amp;nbsp;Request::only(&amp;#39;scene_id&amp;#39;,&amp;#39;post&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$scene_id&amp;nbsp;=&amp;nbsp;$data[&amp;#39;scene_id&amp;#39;];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//删除所有旧的二维码
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SceneQrcodeModel::where(&amp;#39;scene_id&amp;#39;,$scene_id)-&amp;gt;delete();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;ElResponse::success();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(\think\Exception&amp;nbsp;$err)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;ElResponse::fail(&amp;#39;任务执行失败，请稍后重试或联系技术人员处理&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

/**
&amp;nbsp;*&amp;nbsp;根据序号依次发起创建二维码请求
&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\think\response\Json
&amp;nbsp;*/
public&amp;nbsp;function&amp;nbsp;createQrcode():&amp;nbsp;\think\response\Json
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data&amp;nbsp;=&amp;nbsp;Request::only(&amp;#39;scene_id,index&amp;#39;,&amp;#39;post&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$scene_id&amp;nbsp;=&amp;nbsp;$data[&amp;#39;scene_id&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$i&amp;nbsp;=&amp;nbsp;$data[&amp;#39;index&amp;#39;];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$scene&amp;nbsp;=&amp;nbsp;SceneModel::find($scene_id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$list&amp;nbsp;=&amp;nbsp;SchoolModel::where([
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;#39;pid&amp;#39;,&amp;#39;in&amp;#39;,$scene[&amp;#39;school&amp;#39;]],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;#39;level&amp;#39;,&amp;#39;=&amp;#39;,3]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;gt;order(&amp;#39;sort&amp;nbsp;asc,&amp;nbsp;id&amp;nbsp;asc&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;gt;page($i,1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;gt;select();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$class_id&amp;nbsp;=&amp;nbsp;$list[0][&amp;#39;id&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self::buildSceneQrcode($scene_id,$class_id);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;ElResponse::success();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(\think\Exception&amp;nbsp;$err)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;ElResponse::fail($err-&amp;gt;getMessage());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

/**
&amp;nbsp;*&amp;nbsp;创建场景二维码，写入数据库
&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;int&amp;nbsp;$scene_id
&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;int&amp;nbsp;$class_id
&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;void
&amp;nbsp;*/
public&amp;nbsp;function&amp;nbsp;buildSceneQrcode(int&amp;nbsp;$scene_id,&amp;nbsp;int&amp;nbsp;$class_id)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data&amp;nbsp;=&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;scene_id&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$scene_id,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;class_id&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$class_id
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$sceneValue&amp;nbsp;=&amp;nbsp;$scene_id.&amp;#39;-&amp;#39;.$class_id;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$path&amp;nbsp;=&amp;nbsp;&amp;#39;qrcode/&amp;#39;.$scene_id.&amp;#39;/&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$filename&amp;nbsp;=&amp;nbsp;$class_id.&amp;#39;.png&amp;#39;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data[&amp;#39;qrcode&amp;#39;]&amp;nbsp;=&amp;nbsp;$this-&amp;gt;generateQrCode($sceneValue,$path,$filename);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SceneQrcodeModel::create($data);
}

public&amp;nbsp;function&amp;nbsp;generateQrCode($sceneValue,&amp;nbsp;$path,&amp;nbsp;$filename)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$config&amp;nbsp;=&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;app_id&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;Config::get(&amp;#39;wechat_config.app_id&amp;#39;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;secret&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;Config::get(&amp;#39;wechat_config.secret&amp;#39;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;response_type&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;array&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$app&amp;nbsp;=&amp;nbsp;Factory::miniProgram($config);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$response&amp;nbsp;=&amp;nbsp;$app-&amp;gt;app_code-&amp;gt;getUnlimit($sceneValue,&amp;nbsp;[&amp;#39;page&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;pages/scene/index&amp;#39;]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($response&amp;nbsp;instanceof&amp;nbsp;\EasyWeChat\Kernel\Http\StreamResponse)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$filepath&amp;nbsp;=&amp;nbsp;Env::get(&amp;#39;root_path&amp;#39;).&amp;#39;public/miniprogram/&amp;#39;.$path;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$file&amp;nbsp;=&amp;nbsp;$response-&amp;gt;saveAs($filepath,&amp;nbsp;$filename);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\think\facade\Log::error($file);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&amp;#39;/miniprogram/&amp;#39;.$path.$file;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(\think\Exception&amp;nbsp;$err)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 16 Feb 2023 15:57:27 +0800</pubDate></item><item><title>js：webpack插件BannerPlugin添加版权信息</title><link>https://xin.el0310.com/index.php/post/311.html</link><description>&lt;p&gt;打包的时候要加入一些版权信息，如果每次打完包都手动添加，岂不是很累。&lt;/p&gt;&lt;p&gt;可以使用webpack插件BannerPlugin添加版权信息&lt;/p&gt;&lt;h2&gt;最简单的配置&lt;/h2&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;const&amp;nbsp;webpack&amp;nbsp;=&amp;nbsp;require(&amp;#39;webpack&amp;#39;)

module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;...
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new&amp;nbsp;webpack.BannerPlugin(&amp;#39;版权信息&amp;#39;)
&amp;nbsp;&amp;nbsp;]
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h2&gt;进阶配置&lt;br/&gt;&lt;/h2&gt;&lt;p&gt;将变量信息从package.json文件引入，使用nunjucks的模板渲染能力，将模板和数据组合成最终输出的内容&lt;/p&gt;&lt;p&gt;安装相关依赖&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;npm&amp;nbsp;i&amp;nbsp;nunjucks&amp;nbsp;moment&amp;nbsp;-D&lt;/pre&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;//&amp;nbsp;引入版权插入必要
const&amp;nbsp;webpack&amp;nbsp;=&amp;nbsp;require(&amp;#39;webpack&amp;#39;);
const&amp;nbsp;{&amp;nbsp;name,&amp;nbsp;version,&amp;nbsp;author,&amp;nbsp;homepage,&amp;nbsp;description&amp;nbsp;}&amp;nbsp;=&amp;nbsp;require(&amp;#39;./package&amp;#39;);
const&amp;nbsp;nunjucks&amp;nbsp;=&amp;nbsp;require(&amp;#39;nunjucks&amp;#39;);
const&amp;nbsp;moment&amp;nbsp;=&amp;nbsp;require(&amp;#39;moment&amp;#39;);

//&amp;nbsp;使用模板渲染
const&amp;nbsp;LICENSE&amp;nbsp;=&amp;nbsp;nunjucks.render(&amp;#39;LICENSE&amp;#39;,&amp;nbsp;{
&amp;nbsp;&amp;nbsp;name:&amp;nbsp;name,
&amp;nbsp;&amp;nbsp;version:&amp;nbsp;version,
&amp;nbsp;&amp;nbsp;description:&amp;nbsp;description,
&amp;nbsp;&amp;nbsp;author:&amp;nbsp;author,
&amp;nbsp;&amp;nbsp;homepage:&amp;nbsp;homepage,
&amp;nbsp;&amp;nbsp;date:&amp;nbsp;moment().format(&amp;#39;YYYY-MM-DD&amp;nbsp;HH:mm:ss&amp;#39;),
});

module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;...
&amp;nbsp;&amp;nbsp;optimization:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minimizer:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//压缩CSS代码
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new&amp;nbsp;CssMinimizerPlugin(),

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//压缩js代码
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new&amp;nbsp;TerserPlugin({
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extractComments:&amp;nbsp;false,&amp;nbsp;//&amp;nbsp;不将注释提取到单独的文件中
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}),

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;添加版权信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new&amp;nbsp;webpack.BannerPlugin({
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entryOnly:&amp;nbsp;true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;banner:&amp;nbsp;LICENSE,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raw:&amp;nbsp;true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],
&amp;nbsp;&amp;nbsp;},
}&lt;/pre&gt;&lt;p&gt;LICENSE模板内容&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;/*!
&amp;nbsp;*&amp;nbsp;Name&amp;nbsp;{{name}}&amp;nbsp;&amp;nbsp;
&amp;nbsp;*&amp;nbsp;Version&amp;nbsp;{{version}}&amp;nbsp;&amp;nbsp;
&amp;nbsp;*&amp;nbsp;Author:&amp;nbsp;{{author}}
&amp;nbsp;*&amp;nbsp;Description:&amp;nbsp;{{description}}
&amp;nbsp;*&amp;nbsp;Homepage:{{homepage}}
&amp;nbsp;*&amp;nbsp;Date:&amp;nbsp;{{date}}
&amp;nbsp;*/&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 09 Nov 2022 11:23:38 +0800</pubDate></item><item><title>tailwindcss用法的延伸</title><link>https://xin.el0310.com/index.php/post/310.html</link><description>&lt;h2&gt;自定义颜色&lt;br/&gt;&lt;/h2&gt;&lt;p&gt;如果设计同学提供了项目中的主题色，并且有语义化的名称，比如类似success，info，warning这种语义化的颜色，我们就可以基于这些来配置我们的颜色，包括但不限于字体、背景、边框、阴影颜色(配置完之后直接可以使用类似text-success的类来设置颜色)，可以替换css预处理器的变量功能&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;//&amp;nbsp;tailwindcss&amp;nbsp;v3
const&amp;nbsp;colors&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;#39;success&amp;#39;:&amp;nbsp;&amp;#39;#654321&amp;#39;，
&amp;nbsp;&amp;nbsp;&amp;#39;info&amp;#39;:&amp;nbsp;&amp;#39;#123456&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;#39;warning&amp;#39;:&amp;nbsp;&amp;#39;#666666&amp;#39;,
&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
}
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;content:&amp;nbsp;[&amp;#39;./index.html&amp;#39;,&amp;nbsp;&amp;#39;./src/**/*.{vue,js,ts,jsx,tsx}&amp;#39;],
&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;colors,
&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[],
}
//&amp;nbsp;tailwindcss&amp;nbsp;v2
const&amp;nbsp;colors&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;#39;success&amp;#39;:&amp;nbsp;&amp;#39;#654321&amp;#39;，
&amp;nbsp;&amp;nbsp;&amp;#39;info&amp;#39;:&amp;nbsp;&amp;#39;#123456&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;#39;warning&amp;#39;:&amp;nbsp;&amp;#39;#666666&amp;#39;,
&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
}
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;content:&amp;nbsp;[&amp;#39;./index.html&amp;#39;,&amp;nbsp;&amp;#39;./src/**/*.{vue,js,ts,jsx,tsx}&amp;#39;],
&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textColor:&amp;nbsp;colors,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;backgroundColor:&amp;nbsp;colors,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;borderColor:&amp;nbsp;colors,
&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[],
}&lt;/pre&gt;&lt;p&gt;v2和v3版本的设置有些许区别，v2具体的设置什么类别的颜色需要特别指定。&lt;/p&gt;&lt;h2&gt;间距 &amp;amp; 宽高 &amp;amp; 行高 &amp;amp; 圆角 &amp;amp; 边框宽度&lt;/h2&gt;&lt;p&gt;因为tailwindcss默认长度相关的配置是基于rem的，而PC端的项目大多数时候我们都是固定一个宽度，左右留白，所以大多数情况下，设计稿都会在固定一个宽度内，元素的大小宽高边距单位都是px，所以我们需要对默认的做一些特定配置来适配我们的项目&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;const&amp;nbsp;spacing&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;0:&amp;nbsp;0,
&amp;nbsp;&amp;nbsp;4:&amp;nbsp;&amp;#39;4px&amp;#39;,
&amp;nbsp;&amp;nbsp;8:&amp;nbsp;&amp;#39;8px&amp;#39;,
&amp;nbsp;&amp;nbsp;12:&amp;nbsp;&amp;#39;12px&amp;#39;,
&amp;nbsp;&amp;nbsp;//&amp;nbsp;...&amp;nbsp;项目中常用的都可以配置
}
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;content:&amp;nbsp;[&amp;#39;./index.html&amp;#39;,&amp;nbsp;&amp;#39;./src/**/*.{vue,js,ts,jsx,tsx}&amp;#39;],
&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;v3&amp;nbsp;&amp;amp;&amp;nbsp;v2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spacing,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lineHeight:&amp;nbsp;spacing,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;borderWidth:&amp;nbsp;spacing,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;borderRadius:&amp;nbsp;spacing,
&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[],
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h2&gt;移动端适配方案&lt;/h2&gt;&lt;p&gt;可能对于移动端适配，现在流行的就是viewport方案了，也可能有的项目还在用flexable方案，但是我们又不想手动换算px到rem或vw，虽然社区也有类似pxtorem或者pxtovw这种postcss的插件，但解决问题的方法还是不够优雅，可能是因为插件的维护的不积极，可能是插件不好用，不兼容postcss8(pxtovw说的就是你?)，既然我们都有tailwindcss了，那就让这些配置变的更简单一些吧！如果你们设计同学提供了常用的间距方案，比如4px的倍数或者6px的倍数，现在假设设计同学的设计稿都是750px的，我们就可以基于此来写两个函数方法来处理pxtorem和pxtovw的任务，如果你们是flexable方案就用pxToRem，如果是viewport的适配方案就用pxToVmin。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;function&amp;nbsp;pxToRem(variable)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;return&amp;nbsp;`${variable&amp;nbsp;/&amp;nbsp;75}rem`
}

function&amp;nbsp;pxToVmin(variable)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;return&amp;nbsp;`${variable&amp;nbsp;/&amp;nbsp;7.5}vmin`
}
//&amp;nbsp;flexable
const&amp;nbsp;fontSize&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;12:&amp;nbsp;pxToRem(12),
&amp;nbsp;&amp;nbsp;14:&amp;nbsp;pxToRem(14),
&amp;nbsp;&amp;nbsp;16:&amp;nbsp;pxToRem(16),
&amp;nbsp;&amp;nbsp;...
},&amp;nbsp;spacing&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;0:&amp;nbsp;0,
&amp;nbsp;&amp;nbsp;4:&amp;nbsp;pxToRem(4),
&amp;nbsp;&amp;nbsp;8:&amp;nbsp;pxToRem(8),
&amp;nbsp;&amp;nbsp;12:&amp;nbsp;pxToRem(12),
&amp;nbsp;&amp;nbsp;...
}
//&amp;nbsp;viewport
const&amp;nbsp;fontSize&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;12:&amp;nbsp;pxToVmin(12),
&amp;nbsp;&amp;nbsp;14:&amp;nbsp;pxToVmin(14),
&amp;nbsp;&amp;nbsp;16:&amp;nbsp;pxToVmin(16),
&amp;nbsp;&amp;nbsp;...
},&amp;nbsp;spacing&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;0:&amp;nbsp;0,
&amp;nbsp;&amp;nbsp;4:&amp;nbsp;pxToVmin(4),
&amp;nbsp;&amp;nbsp;8:&amp;nbsp;pxToVmin(8),
&amp;nbsp;&amp;nbsp;12:&amp;nbsp;pxToVmin(12),
&amp;nbsp;&amp;nbsp;...
}
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;content:&amp;nbsp;[&amp;#39;./index.html&amp;#39;,&amp;nbsp;&amp;#39;./src/**/*.{vue,js,ts,jsx,tsx}&amp;#39;],
&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fontSize,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spacing
&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[],
}&lt;/pre&gt;&lt;p&gt;当然圆角大小，边框宽度等都可以这么配置，是不是比使用插件优雅多了&lt;/p&gt;&lt;h2&gt;嵌套语法&lt;/h2&gt;&lt;p&gt;有的同学可能对css预处理器的嵌套语法情有独钟，tailwindcss里面可以吗?安排!&lt;/p&gt;&lt;p&gt;tailwindcss有一个插件叫@tailwindcss/nesting，基于官网的一些配置，需要注意的是文档上的是给postcss配置tailwindcss/nesting，实际上需要配置@tailwindcss/nesting，然后就可以基于css提供嵌套的能力，试试呗~&lt;/p&gt;&lt;h2&gt;固定行数后截断&lt;/h2&gt;&lt;p&gt;有时候我们会为了写一个文本在x行之后阶段并显示...要写好几行样式代码，所以我们通常会定义一个这样的scss工具函数&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;@mixin&amp;nbsp;ellipsis($line:&amp;nbsp;1,&amp;nbsp;$substract:&amp;nbsp;0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@if&amp;nbsp;$line==1&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;white-space:&amp;nbsp;nowrap;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-overflow:&amp;nbsp;ellipsis;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;@else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;-webkit-box;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-webkit-line-clamp:&amp;nbsp;$line;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-webkit-box-orient:&amp;nbsp;vertical;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;100%&amp;nbsp;-&amp;nbsp;$substract;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;overflow:&amp;nbsp;hidden;
}&lt;/pre&gt;&lt;p&gt;tailwindcss对于这种特殊情况提供了专有的插件@tailwindcss/line-clamp，只需要安装一下，然后在tailwind.config.js中的plugins中引入即可&lt;/p&gt;&lt;p&gt;&lt;strong&gt;安装插件&lt;/strong&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;npm&amp;nbsp;install&amp;nbsp;-D&amp;nbsp;@tailwindcss/line-clamp&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;//&amp;nbsp;tailwind.config.js
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;require(&amp;#39;@tailwindcss/line-clamp&amp;#39;),
&amp;nbsp;&amp;nbsp;],
}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;div&amp;nbsp;class=&amp;quot;line-clamp-3&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;!--&amp;nbsp;...3行后截断&amp;nbsp;--&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;lt;div&amp;gt;&lt;/pre&gt;&lt;h2&gt;多主题&lt;/h2&gt;&lt;p&gt;可能你维护的是一个需要支持多主题的项目，不同的情况下有多种配色方案，在tailwindcss中配合css var来实现多主题配色会简单到让你窒息：&lt;/p&gt;&lt;p&gt;在你的全局css文件中配置主题，假设我们有success、info、warning这三种不同的主题配色&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;/*&amp;nbsp;global&amp;nbsp;base&amp;nbsp;css&amp;nbsp;*/
@tailwind&amp;nbsp;base;
@tailwind&amp;nbsp;components;
@tailwind&amp;nbsp;utilities;
//&amp;nbsp;默认主题
:root&amp;nbsp;{
&amp;nbsp;&amp;nbsp;--success:&amp;nbsp;5&amp;nbsp;193&amp;nbsp;174;
&amp;nbsp;&amp;nbsp;--info:&amp;nbsp;51&amp;nbsp;163&amp;nbsp;238;
&amp;nbsp;&amp;nbsp;--warning:&amp;nbsp;237&amp;nbsp;214&amp;nbsp;18;
}
//&amp;nbsp;主题1的配色
.theme-1&amp;nbsp;{
&amp;nbsp;&amp;nbsp;--success:&amp;nbsp;36&amp;nbsp;195&amp;nbsp;102;
&amp;nbsp;&amp;nbsp;--info:&amp;nbsp;54&amp;nbsp;143&amp;nbsp;255;
&amp;nbsp;&amp;nbsp;--warning:&amp;nbsp;234&amp;nbsp;209&amp;nbsp;27;
}
//&amp;nbsp;主题2的配色
.theme-2&amp;nbsp;{
&amp;nbsp;&amp;nbsp;--success:&amp;nbsp;57&amp;nbsp;209&amp;nbsp;121;
&amp;nbsp;&amp;nbsp;--info:&amp;nbsp;0&amp;nbsp;186&amp;nbsp;255;
&amp;nbsp;&amp;nbsp;--warning:&amp;nbsp;234&amp;nbsp;209&amp;nbsp;27;
}&lt;/pre&gt;&lt;p&gt;然后到我们的tailwind.config.js中改变我们的颜色配置&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;//&amp;nbsp;让我们的颜色支持透明度设置
function&amp;nbsp;withOpacityValue(variable)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;return&amp;nbsp;({&amp;nbsp;opacityValue&amp;nbsp;})&amp;nbsp;=&amp;gt;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;opacityValue&amp;nbsp;===&amp;nbsp;undefined
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;nbsp;`rgb(var(${variable}))`
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;`rgb(var(${variable})&amp;nbsp;/&amp;nbsp;${opacityValue})`
&amp;nbsp;&amp;nbsp;}
}

const&amp;nbsp;colors&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;success:&amp;nbsp;withOpacityValue(&amp;#39;--success&amp;#39;),
&amp;nbsp;&amp;nbsp;info:&amp;nbsp;withOpacityValue(&amp;#39;--info&amp;#39;),
&amp;nbsp;&amp;nbsp;warning:&amp;nbsp;withOpacityValue(&amp;#39;--warning&amp;#39;),
&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
}
module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;content:&amp;nbsp;[&amp;#39;./index.html&amp;#39;,&amp;nbsp;&amp;#39;./src/**/*.{vue,js,ts,jsx,tsx}&amp;#39;],
&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;colors,
&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;[require(&amp;#39;@tailwindcss/line-clamp&amp;#39;)],
}&lt;/pre&gt;&lt;p&gt;最后根据不同的情况设置你的主题，对要设置的主题的顶级元素设置对应的class即可，内部的所有颜色样式都会对应特定的主题而改变！&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;!--&amp;nbsp;默认主题&amp;nbsp;--&amp;gt;
&amp;lt;div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;!--&amp;nbsp;...&amp;nbsp;--&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;!--&amp;nbsp;主题1&amp;nbsp;--&amp;gt;
&amp;lt;div&amp;nbsp;class=&amp;quot;theme-1&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;!--&amp;nbsp;...&amp;nbsp;--&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;!--&amp;nbsp;主题2&amp;nbsp;--&amp;gt;
&amp;lt;div&amp;nbsp;class=&amp;quot;theme-2&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;!--&amp;nbsp;...&amp;nbsp;--&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h2&gt;一些最佳实践&lt;/h2&gt;&lt;p&gt;如果某些元素样式特别复杂，导致html代码很长很乱怎么优化?你可以通过tailwindcss提供的@apply指令将一系列样式通过一个语义化的类表现出来&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;div&amp;nbsp;class=&amp;quot;complex-node&amp;quot;&amp;gt;xxxx&amp;lt;div&amp;gt;

//&amp;nbsp;...
&amp;lt;style&amp;gt;
.complex-node&amp;nbsp;{
&amp;nbsp;&amp;nbsp;@apply&amp;nbsp;flex&amp;nbsp;m-3&amp;nbsp;text-success&amp;nbsp;rounded&amp;nbsp;....;
}
&amp;lt;/style&amp;gt;&lt;/pre&gt;&lt;p&gt;我有一些样式是全局通用的，比如按钮，卡片的一些样式，我该怎么维护?你可以通过tailwindcss提供的@layer指令将比较通用的样式layer到components层，作为组件级别的样式，从而可以达到全局复用的目的&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;@layer&amp;nbsp;components&amp;nbsp;{
&amp;nbsp;&amp;nbsp;.btn-blue&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@apply&amp;nbsp;bg-blue-500&amp;nbsp;hover:bg-blue-700&amp;nbsp;text-white&amp;nbsp;font-bold&amp;nbsp;py-2&amp;nbsp;px-4&amp;nbsp;rounded;
&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;我的项目是多人维护的，我如何保证原子化的样式类名称有一个比较合理的顺序呢?比如你喜欢先写宽高然后写定位，但是你的同事跟你相反，如何制定一个规范呢?tailwindcss提供了一个prettier插件prettier-plugin-tailwindcss，可以通过安装插件并且配置保存后更新即可规范不同成员写样式类的格式化问题&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;npm&amp;nbsp;install&amp;nbsp;-D&amp;nbsp;prettier&amp;nbsp;prettier-plugin-tailwindcss&lt;/pre&gt;&lt;p&gt;新建一个配置文件.prettierrc.json键入{}根据你们项目的原有配置进行配置，如果是个人项目也可以根据你个人喜好进行配置，然后在vscode中安装esbenp.prettier-vscode这个插件，然后打开你的设置搜索format，将Format 
On Paste和Format On Save都勾选上，就可以在保存完之后自动对你的样式类的顺序进行排序，排序的规则默认是根据css box 
model从外到内的规则进行排序的：&lt;/p&gt;&lt;p&gt;margin - border - padding - content&lt;/p&gt;&lt;p&gt;总结&lt;/p&gt;&lt;p&gt;只是针对平时笔者使用到的部分对tailwindcss的能力进行了一些浅谈，其实还有很多能力都没有说到，比如v3提供的一些针对打印页面的样式，hover、active、伪类等的一些设置，其实也比较简单，具体使用的时候看下官方文档就可以了。可能有部分小伙伴也会吐槽tailwindcss有很多基础类的名称需要记忆，其实也不多，熟能生巧，都是一劳永逸的东西。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;本文来源：https://blog.csdn.net/i_am_a_sb/article/details/123095901，感谢原作者的付出，如侵权请联系&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 09 Nov 2022 08:34:03 +0800</pubDate></item><item><title>Ubuntu 安装Phpstorm </title><link>https://xin.el0310.com/index.php/post/309.html</link><description>&lt;p&gt;1、首先去Jetbrains官网下载PhpStorm的tar包&lt;/p&gt;&lt;p&gt;2、下载完成后，打开终端窗口并将您的工作目录更改为下载目录，然后使用以下命令解压缩.tar.gz文件：&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;tar&amp;nbsp;zxvf&amp;nbsp;PhpStorm-2022.2.3.tar.gz&lt;/pre&gt;&lt;p&gt;3、将在当前工作目录中创建一个名为PhpStorm-***.**.*的新文件夹。将此PhpStorm-***.**.*目录移动到/ opt。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;sudo&amp;nbsp;mv&amp;nbsp;PhpStorm-***.**.*/&amp;nbsp;/opt/phpstorm/&lt;/pre&gt;&lt;p&gt;4、创建一个软链接&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;sudo&amp;nbsp;ln&amp;nbsp;-s&amp;nbsp;/opt/phpstorm/bin/phpstorm.sh&amp;nbsp;/usr/local/bin/phpstorm&lt;/pre&gt;&lt;p&gt;5、在终端中键入phpstorm来启动应用程序&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;phpstorm&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;比较省心的方式是建立一个phpstorm的快捷方式，但是用网上的方法尝试以后，发现使用快捷方式打开的phpstorm是未激活的状态，待解决后再更新&lt;/p&gt;</description><pubDate>Sun, 06 Nov 2022 16:14:08 +0800</pubDate></item><item><title>解决jquery插件冲突的问题</title><link>https://xin.el0310.com/index.php/post/308.html</link><description>&lt;p&gt;今天开发过程中发现lightbox与jquery冲突，导致jquery无法生效。&lt;/p&gt;&lt;p&gt;结果上网搜了搜，解决办法有如下&lt;/p&gt;&lt;p&gt;jQuery.noConflict()&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;具体实现：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;jQuery.noConflict();
(function($)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;$(function()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;使用&amp;nbsp;$&amp;nbsp;作为&amp;nbsp;jQuery&amp;nbsp;别名的代码&amp;nbsp;&amp;nbsp;我把导航的js代码写在这中间就行了
&amp;nbsp;&amp;nbsp;});
})(jQuery);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 25 Oct 2022 21:41:57 +0800</pubDate></item><item><title>常用API接口收集</title><link>https://xin.el0310.com/index.php/post/307.html</link><description>&lt;p&gt;一、博天API&lt;br/&gt;&lt;/p&gt;&lt;p&gt;地址：&lt;a href=&quot;https://api.btstu.cn/&quot; target=&quot;_blank&quot; textvalue=&quot;https://api.btstu.cn/&quot;&gt;https://api.btstu.cn/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;特色：随机头像、随机壁纸、随机鸡汤等&lt;/p&gt;</description><pubDate>Sun, 09 Oct 2022 09:24:12 +0800</pubDate></item><item><title>tailwind css 生态和封装组件</title><link>https://xin.el0310.com/index.php/post/306.html</link><description>&lt;p&gt;大神整理的&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://asmcn.icopy.site/awesome/awesome-tailwindcss/&quot; _src=&quot;https://asmcn.icopy.site/awesome/awesome-tailwindcss/&quot;&gt;https://asmcn.icopy.site/awesome/awesome-tailwindcss/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;比较好用的片段封装&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://flowrift.com/&quot; _src=&quot;https://flowrift.com/&quot;&gt;https://flowrift.com/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;不错的UI&lt;/p&gt;&lt;p&gt;daisyUI&amp;nbsp;&lt;a href=&quot;https://daisyui.com/&quot; _src=&quot;https://daisyui.com/&quot;&gt;https://daisyui.com/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;延伸：超赞列表合集&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/icopy-site/awesome-cn&quot; _src=&quot;https://github.com/icopy-site/awesome-cn&quot;&gt;https://github.com/icopy-site/awesome-cn&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;https://asmcn.icopy.site/&quot; _src=&quot;https://asmcn.icopy.site/&quot;&gt;https://asmcn.icopy.site/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Mon, 12 Sep 2022 10:23:32 +0800</pubDate></item><item><title>CSS3实现折角效果</title><link>https://xin.el0310.com/index.php/post/305.html</link><description>&lt;p&gt;background:linear-gradient参数介绍&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;background:linear-gradient(angle,color-stop&amp;nbsp;length,color-stop，length)&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;angle&lt;/code&gt;可以指定&lt;code&gt;0~360deg&lt;/code&gt;,或者用方向：&lt;code&gt;to left,to left bottom&lt;/code&gt;等属性 &lt;br/&gt; 举例：&lt;code&gt;div&lt;/code&gt;的其余属性为：&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;color-stop&lt;/code&gt;指颜色的终点&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;length&lt;/code&gt;指颜色跨越的距离&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1、渐变&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(0deg,&amp;nbsp;red&amp;nbsp;20%,&amp;nbsp;blue&amp;nbsp;60%,&amp;nbsp;yellow);
}&lt;/pre&gt;&lt;p&gt;效果：&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662711321635521.png&quot; title=&quot;01.png&quot; alt=&quot;01.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;即：沿0deg渐变，从0~20%*height颜色为red，从20%~60%*height颜色为blue，从60%~100%*height颜色为yellow。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、无渐变&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(0deg,&amp;nbsp;red&amp;nbsp;20%,&amp;nbsp;blue&amp;nbsp;20%,blue&amp;nbsp;80%,&amp;nbsp;green&amp;nbsp;80%,green&amp;nbsp;100%);
}&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662711376716916.png&quot; title=&quot;02.png&quot; alt=&quot;02.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;即：沿0deg渐变，从0~20%*height颜色为red，从(20%~20%)*height颜色为red到blue的过渡，从20%~80%*height颜色为blue，从(80%~80%)*height颜色为blue到green的过渡，从80%~100%*height颜色为green。 &lt;br/&gt;&lt;/p&gt;&lt;p&gt;可简写为background: linear-gradient(0deg, red 20%, blue 0,blue 80%, green 0);因为颜色后面的length必须是递增的，若写为递减的浏览器将自动将length调整为前面最近的length值，同时相同颜色相同length值会覆盖。 &lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3、改变渐变方向&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(45deg,&amp;nbsp;red&amp;nbsp;20%,&amp;nbsp;blue&amp;nbsp;60%,&amp;nbsp;yellow);
}&lt;/pre&gt;&lt;p&gt;或者&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(to&amp;nbsp;right&amp;nbsp;top,&amp;nbsp;red&amp;nbsp;20%,&amp;nbsp;blue&amp;nbsp;60%,&amp;nbsp;yellow);
}&lt;/pre&gt;&lt;p&gt;效果：&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662711509822410.png&quot; title=&quot;03.png&quot; alt=&quot;03.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;4、折角&lt;/p&gt;&lt;p&gt;第1步——剪&lt;/p&gt;&lt;p&gt;添加background: linear-gradient(225deg, transparent 1.5em, blue 1.5em, blue);&lt;/p&gt;&lt;p&gt;或者简写为background: linear-gradient(225deg, transparent 1.5em, blue 0);&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712068386275.png&quot; title=&quot;04.png&quot; alt=&quot;04.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;其中右上角红色线条的长度为1.5em&lt;/p&gt;&lt;p&gt;第2步——添加折角&lt;/p&gt;&lt;p&gt;添加background: linear-gradient(225deg, transparent 50%, gray 50%,gray) 100% 0 / 2em 2em;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712114450278.png&quot; title=&quot;05.png&quot; alt=&quot;05.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;其中，100% 0 / 2em 2em表示从(X:100%*width，Y:0*height)处即右上角开始过渡，长宽分别为2em 2em,接下来添加no-repeat属性，只显示最右上角的一个正方形，上半部分为透明色。 &lt;br/&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712127697724.png&quot; title=&quot;06.png&quot; alt=&quot;06.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;上图为审查元素时的效果。现在将以上效果叠加起来：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;background:&amp;nbsp;linear-gradient(225deg,&amp;nbsp;transparent&amp;nbsp;50%,&amp;nbsp;green&amp;nbsp;50%,green)
&amp;nbsp;no-repeat&amp;nbsp;100%&amp;nbsp;0&amp;nbsp;/&amp;nbsp;2em&amp;nbsp;2em,&amp;nbsp;
linear-gradient(225deg,&amp;nbsp;transparent&amp;nbsp;1.5em,&amp;nbsp;#00cd00&amp;nbsp;0);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712198786230.png&quot; title=&quot;007.png&quot; alt=&quot;007.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;第3步——添加折角&lt;/p&gt;&lt;p&gt;为了做出其他角度的更逼真的折页效果，即过渡的角度225deg如下图： &lt;br/&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712224485851.png&quot; title=&quot;08.png&quot; alt=&quot;08.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;首先将剪掉的折叠角放在div中，添加的折角放在div::before中，&lt;/p&gt;&lt;p&gt;第1步——剪角180+30=210deg&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;&amp;nbsp;#div&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;relative;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(210deg,&amp;nbsp;transparent&amp;nbsp;1.5em,&amp;nbsp;green&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;第2步——添加折角&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div::before&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;absolute;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;right:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;3em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;1.73em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(210deg,&amp;nbsp;red&amp;nbsp;50%,&amp;nbsp;black&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712280313542.png&quot; title=&quot;09.png&quot; alt=&quot;09.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;第3步——改变添加折角的角度&lt;/p&gt;&lt;p&gt;想要的折角上上图中红色部分以它斜边为对称轴的对称部分，而上面background: linear-gradient(210deg, red 50%, black 0);中，不管before中width和height是多少，都是在50%处以上为red，因此，考虑到将before中width和height对换,同时渐变的角度+30即240deg&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div::before&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;absolute;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;right:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;1.73em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;3em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(240deg,&amp;nbsp;red&amp;nbsp;50%,&amp;nbsp;black&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712321393151.png&quot; title=&quot;10.png&quot; alt=&quot;10.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;第4步——将添加折角向上平移&lt;/p&gt;&lt;p&gt;将添加的折角向上平移到其底部和剪掉的三角形最右下重合，即上移3-1.73~=1.3&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#div::before&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;absolute;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;right:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;1.73em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;3em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(240deg,&amp;nbsp;red&amp;nbsp;50%,&amp;nbsp;black&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transform:&amp;nbsp;translateY(-1.3em);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712356176189.png&quot; title=&quot;11.png&quot; alt=&quot;11.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;第5步——添加阴影效果&lt;/p&gt;&lt;p&gt;将background中的red换成transparent，再添加阴影效果&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;&amp;nbsp;#div&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;200px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;100px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;20px;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;relative;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-radius:0.5em
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(210deg,&amp;nbsp;transparent&amp;nbsp;1.5em,&amp;nbsp;green&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
#div::before&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&amp;#39;&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;absolute;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;right:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;1.73em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;3em;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(240deg,&amp;nbsp;transparent&amp;nbsp;50%,&amp;nbsp;#138a18&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transform:&amp;nbsp;translateY(-1.3em)&amp;nbsp;rotate(-30deg);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transform-origin:&amp;nbsp;bottom&amp;nbsp;right;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-bottom-left-radius:&amp;nbsp;inherit;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;box-shadow:&amp;nbsp;-0.2em&amp;nbsp;0.2em&amp;nbsp;0.3em&amp;nbsp;-0.1em&amp;nbsp;#065206;
}&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/09/202209091662712397369927.png&quot; title=&quot;12.png&quot; alt=&quot;12.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;等待继续编辑：&lt;a href=&quot;https://blog.csdn.net/u012657197/article/details/75321796&quot; _src=&quot;https://blog.csdn.net/u012657197/article/details/75321796&quot;&gt;https://blog.csdn.net/u012657197/article/details/75321796&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/qq_24724109/article/details/88206596&quot; _src=&quot;https://blog.csdn.net/qq_24724109/article/details/88206596&quot;&gt;https://blog.csdn.net/qq_24724109/article/details/88206596&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt; &amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 09 Sep 2022 15:28:19 +0800</pubDate></item><item><title>linux使用dd命令拷贝/生成文件</title><link>https://xin.el0310.com/index.php/post/304.html</link><description>&lt;p&gt;生成指定大小的空文件&lt;/p&gt;&lt;p&gt;生成1M大小的文件：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;sudo&amp;nbsp;dd&amp;nbsp;if=/dev/zero&amp;nbsp;of=test_1M.img&amp;nbsp;bs=1M&amp;nbsp;count=1&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/06/202206091654780154732008.png&quot; title=&quot;1.png&quot; alt=&quot;1.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;生成1G大小的文件：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;sudo&amp;nbsp;dd&amp;nbsp;if=/dev/zero&amp;nbsp;of=test_1G.img&amp;nbsp;bs=1M&amp;nbsp;count=1K&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/06/202206091654780201242322.png&quot; title=&quot;2.png&quot; alt=&quot;2.png&quot;/&gt;&lt;/p&gt;</description><pubDate>Thu, 09 Jun 2022 21:01:39 +0800</pubDate></item><item><title>宝塔面板安装指定历史版本教程</title><link>https://xin.el0310.com/index.php/post/303.html</link><description>&lt;h2&gt;前言&lt;/h2&gt;&lt;p&gt;使用宝塔官方一键命令，直接搭建出来的是最新版的宝塔。但是，很多时候我们需要使用低版本的，这个时候就没有办法直接使用一键命令来搭建了。&lt;/p&gt;&lt;p&gt;下面不念就讲讲怎么安装指定历史版本塔面板。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;20221004更新&lt;/span&gt;&lt;/p&gt;&lt;p&gt;发现一个宝塔工具箱，可以一键去掉强行登录的限制，还有一些其他功能，均有待验证，网址为：&lt;a href=&quot;https://www.btpanel.cm/&quot; _src=&quot;https://www.btpanel.cm/&quot;&gt;https://www.btpanel.cm/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Windows版本的工具箱地址：&lt;a href=&quot;https://github.com/gacjie/btwindows_tools&quot; _src=&quot;https://github.com/gacjie/btwindows_tools&quot;&gt;https://github.com/gacjie/btwindows_tools&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1&gt;一、Linux面板&lt;/h1&gt;&lt;p&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;20220609重要更新&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;官方已经把所有的历史版本都修改过了，所以不能用下面的官方连接下载了，需要到github下载。仓库地址 &lt;a href=&quot;https://github.com/wei/baota/releases&quot; _src=&quot;https://github.com/wei/baota/releases&quot;&gt;https://github.com/wei/baota/releases&lt;/a&gt;&amp;nbsp; &lt;br/&gt;&lt;/p&gt;&lt;h3&gt;1.1 版本合集&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://download.bt.cn/install/update/LinuxPanel-7.7.0.zip&quot; _src=&quot;https://download.bt.cn/install/update/LinuxPanel-7.7.0.zip&quot;&gt;https://download.bt.cn/install/update/LinuxPanel-7.7.0.zip&lt;/a&gt; (这个就可以)&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.6.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.5.2.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.5.1.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.8.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.7.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.6.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.5.zip(会有绑定提醒)&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.3.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.2.zip (有pma漏洞)&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.4.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.3.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.2.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.1.1.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.1.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.0.3.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.0.2.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-7.0.1.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.9.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.8.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.7.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.6.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.5.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.9.2.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.8.5.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.8.4.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.8.3.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.8.2.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.6.6.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.5.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.4.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.3.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.2.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-6.1.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-5.9.2.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-5.9.1.zip(目前仍然很多人在用的版本)&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-5.9.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-5.2.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-5.0.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.9.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.8.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.7.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.6.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.5.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.4.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.3.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.2.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.1.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-4.0.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-3.9.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-3.8.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-3.7.0.zip&lt;/p&gt;&lt;p&gt;https://download.bt.cn/install/update/LinuxPanel-3.5.0.zip&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3&gt;1.2 安装方法&lt;/h3&gt;&lt;p&gt;1、先使用官方命令正常进行宝塔安装&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;Ubuntu/Deepin安装命令：wget&amp;nbsp;-O&amp;nbsp;install.sh&amp;nbsp;http://download.bt.cn/install/install-ubuntu_6.0.sh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;sudo&amp;nbsp;bash&amp;nbsp;install.sh&amp;nbsp;Debian安装命令：&amp;nbsp;wget&amp;nbsp;-O&amp;nbsp;install.sh&amp;nbsp;http://download.bt.cn/install/install-ubuntu_6.0.sh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;bash&amp;nbsp;install.sh&lt;/pre&gt;&lt;p&gt;2、根据官方手动升级/降级方法进行覆盖安装&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;1、下载离线升级包,并将升级包上传到服务器中的/root目录&amp;nbsp;2、unzip&amp;nbsp;LinuxPanel-*&amp;nbsp;#解压文件&amp;nbsp;3、cd&amp;nbsp;panel&amp;nbsp;#切换到升级包目录&amp;nbsp;4、bash&amp;nbsp;update.sh&amp;nbsp;#执行升级脚本&amp;nbsp;5、cd&amp;nbsp;..&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;rm&amp;nbsp;-f&amp;nbsp;LinuxPanel-*.zip&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;rm&amp;nbsp;-rf&amp;nbsp;panel&amp;nbsp;#删除升级包&lt;/pre&gt;&lt;p&gt;3、覆盖安装后如果出现登录用户名、密码错误无法登陆时，可以使用以下命令重置密码&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;cd&amp;nbsp;/www/server/panel&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;python&amp;nbsp;tools.py&amp;nbsp;panel&amp;nbsp;yourpasswd&lt;/pre&gt;&lt;center&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/06/202206091654776741576968.png&quot; title=&quot;8af8c85ef38c026.png&quot; alt=&quot;8af8c85ef38c026.png&quot;/&gt;&lt;/center&gt;&lt;p&gt;紫框即你要修改的密码，红框即面板账户&lt;/p&gt;&lt;p&gt;4、为了更安全起见，可以执行以下内容，避免一些问题~~&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;echo&amp;nbsp;&amp;#39;127.0.0.1&amp;nbsp;bt.cn&amp;#39;&amp;nbsp;&amp;gt;&amp;gt;/etc/hosts&lt;/pre&gt;&lt;h3&gt;1.3 教程&lt;/h3&gt;&lt;p&gt;宝塔降级教程(使用SSH连接工具执行下面的命令)这里已7.7为例&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;wget&amp;nbsp;http://download.bt.cn/install/update/LinuxPanel-7.7.0.zip(链接复制你想降低的版本)&lt;/pre&gt;&lt;p&gt;2、解压 执行命令&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;unzip&amp;nbsp;LinuxPanel-7.7.0.zip&lt;/pre&gt;&lt;p&gt;3、进入升级目录&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;cd&amp;nbsp;/root/panel&lt;/pre&gt;&lt;p&gt;4、运行降级&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;bash&amp;nbsp;update.sh&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1&gt;二、Windows面板&lt;/h1&gt;&lt;p&gt;宝塔 windows 版本自 7.2 开始需要绑定账户才能使用，删除 “bind_path.pl” 都没用，甚至在 7.3/7.4 
版本即使破解了免登录但软件商店用不了，只能想办法安装老版本。&lt;br/&gt;&lt;/p&gt;&lt;h3&gt;2.1 修改版本号&lt;/h3&gt;&lt;p&gt;破解办法，先正常安装当前最新版本，安装完成后手动登录一下面板(不需要绑定账户)，然后在宝塔安装目录的 
“&lt;span style=&quot;background-color: #D8D8D8;&quot;&gt;D:\BtSoft\panel\data&lt;/span&gt;” 下有一个&amp;quot;panel.version” 的文件 (如果没有那就自己新建一个)，打开编辑把版本号，如 7.4.0 修改为 
7.1.9。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;为什么不换成 7.2 版本，因为从 7.1.9 以后的版本官网没有面板文件，如果你有可自行手动替换，保留 
“config/config.json，config/index.json，data/libList.conf，data/plugin.json” 
这几个文件(7.1.9 面板文件放在文末可自行替换)&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/10/202210041664859593407579.png&quot; title=&quot;c3ebec7f607fc.png&quot; style=&quot;white-space: normal;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/10/202210041664859593764872.png&quot; style=&quot;&quot; title=&quot;6b9661310438c.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3&gt;2.2 执行修复程序&lt;/h3&gt;&lt;p&gt;上面步骤执行完后，打开 cmd 命令或者 PowerShell，输入 bt 选择修复面板程序&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/10/202210041664859593245077.png&quot; style=&quot;&quot; title=&quot;29e7b61820a8f.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://xin.el0310.com/zb_users/upload/2022/10/202210041664859594409263.png&quot; style=&quot;&quot; title=&quot;3908d207b523a.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3&gt;2.3 删除账户绑定文件&lt;/h3&gt;&lt;p&gt;最后将 “D:\BtSoft\panel\data” 下 bind_path.pl 文件删除或者重命名可免登录账户&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;附件：&lt;/p&gt;&lt;p class=&quot;ue-upload&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;img style=&quot;vertical-align: middle; margin-right: 2px;&quot; src=&quot;https://xin.el0310.com/zb_system/image/filetype/zip.png&quot;/&gt;&lt;a style=&quot;font-size:12px; color:#0066cc;&quot; href=&quot;https://xin.el0310.com/zb_users/upload/2022/10/202210041664859671277229.zip&quot; title=&quot;panel_7.1.9.zip&quot;&gt;panel_7.1.9.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;附件暂时用不到，因为系统会自动下载7.1.9的修复文件&lt;/p&gt;</description><pubDate>Thu, 09 Jun 2022 20:04:39 +0800</pubDate></item></channel></rss>