<script>
    if (window.internals)
        window.internals.settings.setAppleMailLinesClampEnabled(true)
    
</script>
<style>
    html { writing-mode: vertical-rl; }
    div.clamp { border:5px solid black; -webkit-lines-clamp: 4 7 foo; -webkit-column-gap:50px; -webkit-column-rule:5px solid blue; }
    #foo { width:50px; border:2px solid blue; -webkit-user-select:none; }
</style>
<body>
<div class=clamp>
<div>
    <div style="float:right;border:2px solid green;font-size:24px">Float Line 1<br>Float Line 2<br>Float Line 3<br>Float Line 4</div>
    Line One<br>
    Line Two<br>
    Line Three<br>
    Line Four<br>
    Line Six<br>
    
    
</div>

<div id="foo">The middle piece.</div>

<div>
    Line Seven<br>
    Line Eight<br>
    Line Nine<br>
    Line Ten<br>
    Line Eleven<br>
    Line Twelve<br>
 
</div>
</div>

