竖版文字排列实现《金刚般若波罗蜜心经》

在网上找到一篇竖版金刚般若波罗蜜经,尝试通过CSS实现接近书籍图片原文的排版效果。

网络中找到的截图:

采用CSS模拟实现的效果截图:

实现难点:

1.竖版文字的排列;

2.等距离竖格线的实现:竖格线要在容器中上下满屏分布,恰好满足与文字的距离。

莲花图片在百度图片中找到近似图片。

  <div class='content'>
        <div>金刚般若波罗蜜经</div>
        <div>姚秦三藏法师鸠摩罗什译</div>
        <div class='small'>法会因由分第一</div>
        <div class='paragraph'> 如是我闻:一时,佛在舍卫国祇树给孤独园,与大比丘众千二百五十人俱。尔时,世尊食时,著衣持钵,入舍卫大城乞食。于其城中次第乞已,还至本处。饭食讫,收衣钵,洗足已,敷座而坐。
        </div>
        <div class='small'>善现启请分第二</div>
        <div class='paragraph'>
            时,长老须菩提在大众中,即从座起,偏袒右
            <span>
                <span class='picture'><img src='./莲花.png' /></span>
                金刚经<span>心经</span><span>五</span>
            </span>
            肩,右膝著地,合掌恭敬而白佛言:“希有,世尊!如来善护念诸菩萨,善付嘱诸菩萨。世尊,善男子、善女人发阿耨多罗三藐三菩提心,云何应住?云何降伏其心?”</div>
        <div class='small'>大乘正宗分第三</div>
        <div class='paragraph'>佛言:“善哉!善哉!须菩提,如汝所说,如来善护念诸菩萨,善付嘱诸菩萨。汝今谛听,当为汝说。善男子、善女人发阿耨多罗三藐三菩提心,应如是住,如是降伏其心。”</div>
    </div>

  

       * {
            border-width: 0;
        }

        .content {
            margin: 0 auto;
            font-size: 20px;
            /* width: auto; */
            height: 440px;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: row-reverse;
            border: 2px solid #cebf96;
            border-left-width: 1px;
            background: #fcfae1;
            font-family: '楷体';
            line-height: 1.8em;
            float: left;

        }

        .content>div {
            writing-mode: vertical-rl;
            height: 100%;
            background-image: linear-gradient(90deg, #cebf96 1px, transparent 0);
            background-size: 36px 100%;
            /* 宽度等于字体行高 */
            vertical-align: center;
            padding: 10px 0;
            box-sizing: border-box;
        }


        /* 竖线分格线采用线性渐变实现试试 */
        /* 想要分割线间隔相等,且不切割文字,需要子元素每个宽度相等 */

        .content>div:nth-child(1) {
            color: #2e609f;
            font-size: 20px;
            align-self: flex-start;
        }

        .content>div:nth-child(2) {

            font-size: 18px;
            display: flex;
            justify-content: center;
        }



        .paragraph>span {
            display: inline-block;
            height:100%;
            height: calc(100% - 50px);
            padding-top: 50px;
            font-size: 18px;
        }


        .paragraph>span :nth-child(2) {
            padding-top: 20px;

        }

        .paragraph>span :nth-child(3) {
            padding-top: 150px;

        }

        .picture img {
            width: 36px;
        }

        .content div.small {

            color: #bc4f54;
            padding-top: 50px;
            font-size: 14px;
        }