Markdown——CSS达成图片居中等排版方法

使用Md可以提升写作效率,同时增强文章排版的工整规范性,因此越来越多人尝试使用Md取代传统富文本编辑器作为写作工具。
如果将Md看作是一门语言,那么与其最恰似的应当就是我们经常接触到的HTML——它们都是面向结构的语言。
因此,使用Md最大的问题是,本身的样式并不丰富。虽然有诸如Mou这种定制功能的Md工具可以很方便地控制基本样式,也有Typora这种支持Md × HTML的Md拓展,但是本身也有无法忽视的缺点:

  • Mou:语法经过拓展,不通用于其他Md工具。
  • Typora:肉搏HTML很麻烦,尽管需要用到的时刻不多。而且诸如remarkable这种Parser也在开启Typora支持后难以避免地会出现XSS。

因此我们要朝着以下方向去发展:

  1. 尽可能少修改Parser,达到通用目的;
  2. 尽量避免使用HTML支持,维护好安全性。当然,我们也可以支持HTML,只是需要对特定标签,例如script这种进行一个关键词过滤。

举一个最近发现的小例子:我想对特定的某几张图片进行居中。
一般来说,像简书这种,图片是通过默认样式 img进行居中的,而在sf.gg中,这个img默认是没有对齐的样式的,也就是直接向左对齐。
那如果我需要对图片A居中,而图片B左对齐,在这两个网站中,仅仅通过Md几乎无法实现。
首先复习一下img的Md语法:
内联写法:

![](url "title")

外联写法:

![alt][id]

[id]: url "title"

在绝大多数情况下,这个alt是不会出现在页面中的——除非你的图片加载不出来。
因此,我们换种说法就是,这个alt是作为一种“退化”属性存在的,为的是让你在加载不出图片的情况下也能给用户一些图片的描述信息。
而title属性是当你将鼠标移动到图片上时会有一个跟随鼠标的小型提示器,用到的机会比alt频繁。
那么看回img的Md语法,总共有三个可以给我们使用的参数:

  1. alt
  2. title
  3. url

其中,title太常用,因此放到最后,alt在需要SEO的场景中比较重要,我们放到第二,而剩下的url理应就是我们的最好选择
结合一下css的属性选择器,我们可以配合css对这几个参数进行客制。
一般我们要把img居中,都会选择在img的父级中添加

text-align:center;

这也是最标准的写法,不会改变img原本的display。但是很显然,我们无法单纯通过CSS来找到img的父级。

CSS4 将很可能提供父元素选择器,但现在连语法都没定下来。

但是标题说了通过CSS来实现,那就不能使用JS了。因此在CSS不能爬树找父级的情况下,我们还是专注回img本身。
如果我们加入这样一个css:

img[url$="center"]{
display:block;
margin:0 auto;
}

$='center' 的意思是以 center 结尾的 src 属性,这里的用法是,在我们需要居中的图片中的url部分加上?center即可。

![alt](http://xx.xx.xx/xx.jpg?center)

由于在HTTP协议中,问号后的参数不会改变请求资源本身,因此即使带参请求,只要后端没有特殊处理,那么这个图片本身的引用是不会有问题的。
那居左居右的排版也可以用这种方式去,甚至我们还能通过这种方式去设置缩放、旋转、偏转等效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,627评论 32 459
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,228评论 0 8
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,325评论 0 5
  • 初见他的时候,我正高一正是青蠢年华,高二时候的他已经风华正茂是无数少女心爱慕的对象,也是我的男神。 那个时候我家住...
    明明如是阅读 282评论 0 1