Battling <p> tags and shape-outside: ellipse

I wish the forum wouldn’t leap to posting my thread before I’ve finished composing it. Anyway. Below is my mangled poem after attempting to use <p> tags. The one I could not discipline is the break between “A wise man once said” and “He who is content with himself”. There is not supposed to be a space between those two lines… I give up. Help please.

And the larger issue since taking a perfectly formatted poem to this state of asymmetry is that my carefully tweaked ellipse is a ruin. If there’s anyone brave enough to tackle that demon I’ll dedicate the poem to him/her. Thank you.

<!DOCTYPE html>
<HTML LANG="en">
<HEAD>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Solway:wght@300;400;500;700;800&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Henny+Penny&display=swap" rel="stylesheet">

  <title>__(shape-outside: ellipse) &#7172; by semicodin</title>

<style>

p {line-height: 1}
u {text-decoration: underline}
* {box-sizing: border-box}
.blu {color: blue}
.crim {color: crimson}

body {
    width: 950px;
    margin: 0;  /* note this doesn’t work with FLOATS :( */
    padding: 0;
    border: 0;
    outline: 0;
    color: black;
    font-size: 100%;
    background: transparent;
    vertical-align: text-top;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: 600;
}

.blu {color: blue}
.crim {color: crimson}
.blub {color: blue; font-weight: bold;}
.break {margin-top: 2.38rem}
.break2 {margin-top: 0rem}

.centindent1 {
    text-align: center;
    margin-top: 3.5rem;
}
aside {
    padding: 1.5rem 5rem 1.5rem 5rem;
    margin-bottom: 6rem;
    background-image: url("https://lh3.googleusercontent.com/pw/AP1GczMPUBfBE6q_7DuPDZg-SeMrTwp-mUqfXKTvRVEPar_avikeVcibjtzA4r4Dqyz4VB2SmfraFHCp90aaSBvsAGRcXT4YnmrFWNEkeQwdDCzP-kgTOQ=w950-h950");
    width: 950px;
    height: 950px;
}
.notes {
    margin: 0;
    font-style: normal;
    text-align: center;
    color: black;
    font-family: 'solway', serif;
    font-size: 2.25rem;
    line-height: 2.38rem;
    font-weight: bold;
}
.henpen {
    text-align: center;
    color: black;
    margin-top: 1.5rem;
    font-size: 4rem;
    line-height: 1.02;
    font-weight: 700;
    font-family: 'Henny Penny', cursive;
}

td {
    padding-top: .4rem;
    padding-right: .4rem;
    padding-bottom: .4rem;
    padding-left: .7rem;
}

:root {
    --tab1color: #ffe5fe;
    --tab2color: teal;
    --tab3color: #caffff;
    --border-color: #000;
    /* this one above is the filter color that makes the top border*/
    --bottom-border-color: #000;
    /* no need to change*/
}

.tablabel3 {
    position: relative;
    text-align: center;
    border-radius: 20px 20px 0px 0px;
    color: black;
    padding: 1rem 1rem 0;
    font-size: 2.25rem;
    line-height: 1.5;
    font-weight: bold;
    height: 67px;
    width: 250px;
    filter: drop-shadow(-3px 0px var(--border-color)) drop-shadow(3px 0px var(--border-color));
}

.tab {
    display: flex;
    max-width: 950px;
    margin: auto;
    overflow: hidden;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0px -5px var(--border-color));
    border-bottom: 10px solid var(--bottom-border-color);
}

.tab:after,
.tab:before {
    content: "";
    position: relative;
    z-index: 2;
    flex: 1;
    /*box-shadow: 0 34px var(--tab2color);*/
    box-shadow: 0 34px rgba(221, 198, 136, 0.8);
    /* Try and match a color from the image*/
    mix-blend-mode: lighten;
    /* merge the box shadow above with the background */
    /* this is necessary or a gap will show */
}

.tab:before {
    box-shadow: 0 34px rgb(0, 0, 0, 0.8)
}

.tab:after {
    border-radius: 0 0 0 80px;
    margin-left: -9px;
}

.tab:before {
    border-radius: 0 0 80px 0;
    margin-right: -9px;
}

.tablabel3:before {
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0 0 0 0;
    z-index: -1;
    background: var(--tab2color) url("https://assets.codepen.io/74047/PARCHMENT-A.jpg");
    background-position: -3px -8px;
    transform: perspective(100px) rotateX(36deg) translateY(5px);
    border-radius: 20px 20px 0 0;
}

.bkdimg2 {
    position: relative;
    background: none;
    overflow: hidden;
    margin-top: 1rem;
    margin-bottom: -2px;
    /* attempt to stop rounding errors when zoomed*/
}

.ctr{
    pointer-events:none;
}
.ctr a{
    pointer-events:initial;
}

.ctr {
    position: absolute;
    inset: 0 0 0 0;
}

.ctr2 {z-index: 3}
.ctrmid {z-index: 2}
.ctr3 {z-index: 1}

.ctr2 .tab:before {
    flex: 0 0 65px;
}

.ctr3 .tab:after {
    flex: 0 0 65px;
}


.tab1active .ctr,
.tab2active .ctr,
.tab3active .ctr {
    position: absolute;
}

.tab1active .ctr2,
.tab2active .ctrmid,
.tab3active .ctr3 {
    position: relative;
    z-index: 4;
}

.tab3active .ctr2 {
    z-index: 1;
}

/* ━━━ BACKGROUND & POEM-A ━━━ */

.indent {
    margin: 0 0 0 6.26rem
}

.tab a {
    transform: translateY(-8px);
    display: flex;
    text-align: center;
    justify-content: center;
}

.tab a:link {
    color: black;
    font-weight: bold;
}

.tab a:visited {
    color: black;
    font-weight: bold;
}

.redlink a:link {
    color: crimson;
    padding-top: 1rem;
    font-weight: bold;
}

.redlink a:visited {
    color: crimson;
    padding-top: 1rem;
    font-weight: bold;
}

.leada {
    color: black;
    margin-top: 3.13rem;
    text-align: center;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 3rem;
    line-height: 3.25rem;
}

.leadb {
    text-align: center;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2.5rem;
    line-height: 3rem;
}

.leadc {
    text-align: center;
    font-style: normal;
    margin-bottom: 2.5rem;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2rem;
    line-height: 2.5rem;
}

.poem-a {
    margin-top: 3.13rem;
    margin-left: 5%;
    margin-right: 5%;
    margin-bottom: 2.5rem;
    font-style: normal;
    text-align: left;
    color: black;
    font-family: 'solway', serif;
    font-size: 2.25rem;
    line-height: 2.38rem;
    font-weight: bold;
}

.parch {
    background-image: url('https://lh3.googleusercontent.com/pw/AP1GczOwNR1n9BJD_duNlaAmcp9BoDYm5xk-k0tBWV70BcThwR3CVkHBHXOFuHk-pHqtEROpyLL8B8314huJJUfMvey2_8iqUPGZlvSt8NSlKERCbdBZbw=w890-h1080');
    background-size: 100% 100%;
    padding: 1rem;
    background-position: 0 -10px;
}

p.circle {
    clear: both;
    margin: 0;
    padding: 0rem 0;
}

.circle:before {
    content: "";
    float: left;
    shape-outside: ellipse(60% 30% at left);
    width: 110px;
    height: 370px;
    margin-top: 0rem;
  /*  margin-top: -3rem; */
}

.circle2:before {
    margin-top: 2rem;
    content: "";
    height: 580px;
}

.cinlink a:link {
    color: #611205;
    padding-top: 1rem;
    font-weight: bold;
}

.cinlink a:visited {
    color: #611205;
    padding-top: 1rem;
    font-weight: bold;
}

.foot {
    color: #ffffee;   /* ivory */
    margin-top: 1rem;
    text-align: left;
    font-style: normal;
    margin-bottom: 3.13rem;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2rem;
    line-height: 2.13rem;
}
.contact {
      margin: 0;
      padding: 0rem 0rem 4rem 0rem;
      background-color: #d7bd82;
      font-style: normal;
      text-align: left;
      color: black;
      font-family: 'solway', serif;
      font-size: 2.25rem;
      line-height: 2.38rem;
      font-weight: bold;
}
.here {
    color: black;
    text-align: center;
    padding-top: 5rem;
    margin: 0rem 0 1rem 0;
    font-family: 'solway', serif;
    font-size: 4rem;
    line-height: 1.1;
    font-weight: bold;
}
.tiny {
    color: #888888;
    text-align: center;
    margin: 1rem 4rem 1rem 4rem;
    font-family: '1 prime', monospace;
    font-size: 1rem;
    line-height: 1.13rem;
    font-weight: bold;
}
.nothanks {
    color: black;
    text-align: center;
    margin: 0rem 4rem 1rem 4rem;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: bold;
}
.quest {
    color: black;
    text-align: center;
    margin: 2.25rem 2rem 2.25rem 2rem;
    font-family: 'solway', serif;
    font-size: 3rem;
    line-height: 1.05;
    font-weight: bold;
}
.end {
    color: black;
    text-align: center;
    margin: 1rem 4rem 2.5rem 4rem;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: bold;
}
.clambu35 {
	color: blue;
	font-style: italic;
	font-family: roboto, sans-serif;
    font-size: 3.5rem;
    font-weight: 900;
}

a:active {color: blue}
a:hover {color: crimson}
a:link {color: blue}
a:visited {color: blue}

/*▬▬▬▬▬▬ END CSS ▬▬▬▬▬▬*/

</style>
</head>

<body>

<aside>
<div class="centindent1">
<a href="https://web.dev/articles/shapes-getting-started">Read Razvan Caliman&rsquo;s 23-Page<br>
Primer on the CSS shape-outside</a> 
</div><!-- CLOSING CENTINDENT1 -->
<div class="notes">
<a href="https://web.dev/articles/shapes-getting-started">property</a>. I&rsquo;ve included the entire article as a .PDF in your .ZIP file — it&rsquo;s good! The <span class="crim"><span class="undr">shape-outside: ellipse</span> shown here</span> allowed me to create two virtual ellipses for the poem to flow around. See <a href="https://semicodin.nekoweb.org/vault/shape-outside_(URL)_01.html">this page of mine</a> for more detail about shape-outside. 
<div class="break">
The goal for this particular page was to <i>stylishly</i> move the text around an area of the parchment background that was too dark for black text. What I couldn&rsquo;t have antcipated is the effect &ldquo;sculpting&rdquo; the text in this fashion would have upon the poem itself! There is a relationship between the two &ldquo;waves&rdquo; created by the <span class="crim"><span class="undr">space-outside: ellipse</span></span> used to form them: The resulting two stanzas of the poem draw from their shape new depth!
</div><!-- CLOSING BREAK -->
<div class="henpen">semicodin</div>
</div><!-- CLOSING NOTES -->
</aside>

  <div class="bkdimg2 tab1active">
    <div class="ctr ctr2">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Thomas_Merton">T. Merton</a></span></div>
    </div>
    <div class="ctr ctrmid">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Zhuang_Zhou">Chuang Tzu</a></span></div>
    </div>
    <div class="ctr ctr3">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Zhuangzi_(book)">&ldquo;Zhuangzi&rdquo;</a></span></div>
    </div>
  </div>

  <div class="parch">

    <div class="poem-a">

      <div class="leada">
        &ldquo;The Empty Boat&rdquo;
      </div>
      <div class="leadb">
        From <i>&ldquo;The Way of Chuang Tzu&rdquo;</i>
      </div>
      <div class="leadc">
        Interpreted by Thomas Merton, Trappist Monk<br>
        1915-1968
      </div>

      <div class="twrap1">
        <p class="circle">
          He who rules men lives in confusion;<br>
          He who is ruled by men lives in sorrow.<br>
          Yao therefore desired<br>
          Neither to influence others<br>
          Nor to be influenced by them.<br>
          The way to get clear of confusion<br>
          And free of sorrow<br>
          Is to live with Tao<br>
          In the land of the great Void.</p>
        
        <p class="circle circle2">
          If a man is crossing a river<br>
          And an empty boat collides with his own skiff,<br>
          Even though he be a bad-tempered man<br>
          He will not become very angry.<br>
          But if he sees a man in the boat,<br>
          He will shout at him to steer clear.<br>
          If the shout is not heard, he will shout again,<br>
          And yet again, and begin cursing.<br>
          And all because there is somebody in the boat.<br>
          Yet if the boat were empty,<br>
          He would not be shouting, and not angry.</p>
                </div><!-- ENDING TWRAP1 -->

<p class="break"></p>
      <div class="indent">
        If you can empty your own boat<br>
        Crossing the river of the world,<br>
        No one will oppose you,<br>
        No one will seek to harm you.<br>
      </div>

      <p class="break">
      The straight tree is the first to be cut down,<br>
      The spring of clear water is the first to be drained dry.<br>
      If you wish to improve your wisdom<br>
      And shame the ignorant,<br>
      To cultivate your character<br>
      And outshine others;<br>
      A light will shine around you<br>
      As if you had swallowed the sun and the moon:<br>
      You will not avoid calamity.</p>
      

      <p class="break">A wise man has said:</p>

      <div class="indent">
        &ldquo;He who is content with himself<br>
        Has done a worthless work.<br>
        Achievement is the beginning of failure.<br>
        Fame is the beginning of disgrace.&rdquo;
      </div>
      <p class="break">
      Who can free himself from achievement<br>
      And from fame, descend and be lost<br>
      Amid the masses of men?<br>
      He will flow like Tao, unseen,<br>
      He will go about like Life itself
      With no name and no home.<br>
      Simple is he, without distinction.<br>
      To all appearances he is a fool.<br>
      His steps leave no trace. He has no power.<br>
      He achieves nothing, has no reputation.<br>
      Since he judges no one<br>
      No one judges him.</p>
      <p class="break"></p>
      <div class="indent">Such is the perfect man:<br>
        His boat is empty.
      </div>

      <p class="foot">
      [xx. 2.]<br>
      [xx. 2, 4.]<br>
      114<br>
      115
      </p>
    </div> <!--  Closing POEM-A  -->
  </div> <!--  Closing PARCH  -->

    <div class="contact">

    <div class="here">
    <p class="cinlink">
    <a href="https://semicodin.nekoweb.org/(shape-outside_ellipse)_01">
Code Here.</a>
    </p>
    </div>

    <div class="nothanks">
All &lt;p&gt; tags by Writ of Order:<br>
Paul O&rsquo;Brien at the Sitepoint Forums.
    </div>

    <div class="quest">
Got Questions? You can PM me at<br>
    <a href="https://sitepoint.com/community/c/html-css/25">the Sitepoint Forums</a><span class="clambu35">!</span><br>
    </div>

    <div class="end">
CLICK HERE TO PROCEED<br>
    <a href="https://semicodin.nekoweb.org/toc.html">
TO THE TABLE OF CONTENTS</a>
    </div>

</div><!-- CLOSING CONTACT -->

</body>
</html>

Maybe you could add this CSS…

p[class="break"]:nth-of-type(3) {
     margin-bottom: 0;
}

…or alternatively change this…

<p class="break">A wise man has said:</p>

…to this…

<p class="break wise-man">A wise man has said:</p>

…and add this CSS…

.wise-man {
     margin-bottom: 0;
}
1 Like

I like the second solution the best. Thank you snady. I don’t suppose you have any thoughts as to my 2 ellipses? I feel like one of my limbs has been ripped out.

oSIGH-BK

The problem lies there.
The values may need adjusting
Try…

shape-outside: ellipse(65% 50% at left);

…perhaps.

Bear in mind that I have not studied CSS shape-outside
at any great length. :wave:

Yes I played with those values until I was blue in the face and still could not get them to work.
oSIGH-BK.

Well thank you anyway, I’ll ask around.

In earlier threads, don’t know which, I did suggest
that you tried using the <pre> element instead.

Is that not an option that you wish to explore?

In what context snady? I don’t understand what you mean when you say that (and I didn’t understand it the first time). Explain please?

Here is a simple example for you to try…

<!DOCTYPE HTML>
<html lang="en">
<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1">

<title>Pre Example</title>

<link href="https://fonts.googleapis.com/css?family=Crete+Round" rel="stylesheet" media="screen">
<link href="https://fonts.googleapis.com/css2?family=Solway:wght@300;400;500;700;800&display=swap" rel="stylesheet">

<style media="screen">
body {
  width: 59.375em;/* 950px */
  margin: 0;
}
 h1 {
   font-family:'Crete Round';
   font-size: 2em; 
   text-align: center; 
 }
 pre {
   padding: 2em 0;
   font-family:'Solway';
   font-size: 1.75em;
   line-height: 1em;
   background-image: url('https://lh3.googleusercontent.com/pw/AP1GczOwNR1n9BJD_duNlaAmcp9BoDYm5xk-k0tBWV70BcThwR3CVkHBHXOFuHk-pHqtEROpyLL8B8314huJJUfMvey2_8iqUPGZlvSt8NSlKERCbdBZbw=w890-h1080');
   background-size:cover;
   background-repeat: no-repeat;
 }
</style>

</head>
<body>
<h1> A &ldquo;Pre&rdquo; Example</h1>

<pre>
            He who rules men lives in confusion;
             He who is ruled by men lives in sorrow.
              Yao therefore desired
               Neither to influence others
                Nor to be influenced by them.
               The way to get clear of confusion
              And free of sorrow
             Is to live with Tao
            In the land of the great Void.

              If a man is crossing a river
             And an empty boat collides with his own skiff,
            Even though he be a bad-tempered man
           He will not become very angry.
          But if he sees a man in the boat,
         He will shout at him to steer clear.
        If the shout is not heard, he will shout again,
      And yet again, and begin cursing.
     And all because there is somebody in the boat.
     Yet if the boat were empty,
     He would not be shouting, and not angry.
</pre>

</body>
</html>

You just adjust each line of verse to suit your requirement. :wink:.

1 Like

Very clever snady. I don’t think I’d use it in this context but it seems to me it would be invaluable if ever I got in a tight jam and needed to trick the browser into believing one of my fonts was monospace instead of proportional, (and my spaces as well). :biggrin:

Snady did you perchance have occasion to visit my SVG thread lately? I have a little puzzle that’s right down your alley . . .

So this problem…

…is now resolved and

…your limb has been safely returned?

Change the existing.circle2:before rule to this:

.circle2:before {
  margin-top: 0;
  content: "";
  height: 504px;
  shape-outside: ellipse(60% 41% at left);
}

You may have to tweak a little as I don’t know what else you may have changed.

There is no ellipse with these latest values Paul. I don’t even have a curve.

Those paragraphs don’t have the circle class on them. No circle class, no ellipse :shifty:

Would you care to demonstrate Dave?

Not to be rude, but this should be pretty obvious if you looked.


It breaks your top margin, but if you add the circle class to that second one

Not to be argumentative but this is the text I am operating from. No ellipse:

<!DOCTYPE html>
<HTML LANG="en">
<HEAD>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Solway:wght@300;400;500;700;800&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Henny+Penny&display=swap" rel="stylesheet">

  <title>(shape-outside: ellipse) &#7172; by semicodin</title>

<style>

p {line-height: 1}
u {text-decoration: underline}
* {box-sizing: border-box}
.blu {color: blue}
.crim {color: crimson}

body {
    width: 950px;
    margin: 0;  /* note this doesn’t work with FLOATS :( */
    padding: 0;
    border: 0;
    outline: 0;
    color: black;
    font-size: 100%;
    background: transparent;
    vertical-align: text-top;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: 600;
}

.blu {color: blue}
.crim {color: crimson}
.blub {color: blue; font-weight: bold;}
.break {margin-top: 2.38rem}
.break2 {margin-top: 0rem}

.centindent1 {
    text-align: center;
    margin-top: 3.5rem;
}
aside {
    padding: 1.5rem 5rem 1.5rem 5rem;
    margin-bottom: 6rem;
    background-image: url("https://lh3.googleusercontent.com/pw/AP1GczMPUBfBE6q_7DuPDZg-SeMrTwp-mUqfXKTvRVEPar_avikeVcibjtzA4r4Dqyz4VB2SmfraFHCp90aaSBvsAGRcXT4YnmrFWNEkeQwdDCzP-kgTOQ=w950-h950");
    width: 950px;
    height: 950px;
}
.notes {
    margin: 0;
    font-style: normal;
    text-align: center;
    color: black;
    font-family: 'solway', serif;
    font-size: 2.25rem;
    line-height: 2.38rem;
    font-weight: bold;
}
.henpen {
    text-align: center;
    color: black;
    margin-top: 1.5rem;
    font-size: 4rem;
    line-height: 1.02;
    font-weight: 700;
    font-family: 'Henny Penny', cursive;
}

td {
    padding-top: .4rem;
    padding-right: .4rem;
    padding-bottom: .4rem;
    padding-left: .7rem;
}

:root {
    --tab1color: #ffe5fe;
    --tab2color: teal;
    --tab3color: #caffff;
    --border-color: #000;
    /* this one above is the filter color that makes the top border*/
    --bottom-border-color: #000;
    /* no need to change*/
}

.tablabel3 {
    position: relative;
    text-align: center;
    border-radius: 20px 20px 0px 0px;
    color: black;
    padding: 1rem 1rem 0;
    font-size: 2.25rem;
    line-height: 1.5;
    font-weight: bold;
    height: 67px;
    width: 250px;
    filter: drop-shadow(-3px 0px var(--border-color)) drop-shadow(3px 0px var(--border-color));
}

.tab {
    display: flex;
    max-width: 950px;
    margin: auto;
    overflow: hidden;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0px -5px var(--border-color));
    border-bottom: 10px solid var(--bottom-border-color);
}

.tab:after,
.tab:before {
    content: "";
    position: relative;
    z-index: 2;
    flex: 1;
    /*box-shadow: 0 34px var(--tab2color);*/
    box-shadow: 0 34px rgba(221, 198, 136, 0.8);
    /* Try and match a color from the image*/
    mix-blend-mode: lighten;
    /* merge the box shadow above with the background */
    /* this is necessary or a gap will show */
}

.tab:before {
    box-shadow: 0 34px rgb(0, 0, 0, 0.8)
}

.tab:after {
    border-radius: 0 0 0 80px;
    margin-left: -9px;
}

.tab:before {
    border-radius: 0 0 80px 0;
    margin-right: -9px;
}

.tablabel3:before {
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0 0 0 0;
    z-index: -1;
    background: var(--tab2color) url("https://assets.codepen.io/74047/PARCHMENT-A.jpg");
    background-position: -3px -8px;
    transform: perspective(100px) rotateX(36deg) translateY(5px);
    border-radius: 20px 20px 0 0;
}

.bkdimg2 {
    position: relative;
    background: none;
    overflow: hidden;
    margin-top: 1rem;
    margin-bottom: -2px;
    /* attempt to stop rounding errors when zoomed*/
}

.ctr{
    pointer-events:none;
}
.ctr a{
    pointer-events:initial;
}

.ctr {
    position: absolute;
    inset: 0 0 0 0;
}

.ctr2 {z-index: 3}
.ctrmid {z-index: 2}
.ctr3 {z-index: 1}

.ctr2 .tab:before {
    flex: 0 0 65px;
}

.ctr3 .tab:after {
    flex: 0 0 65px;
}


.tab1active .ctr,
.tab2active .ctr,
.tab3active .ctr {
    position: absolute;
}

.tab1active .ctr2,
.tab2active .ctrmid,
.tab3active .ctr3 {
    position: relative;
    z-index: 4;
}

.tab3active .ctr2 {
    z-index: 1;
}

/* ━━━ BACKGROUND & POEM-A ━━━ */

.indent {
    margin: 0 0 0 6.26rem
}

.tab a {
    transform: translateY(-8px);
    display: flex;
    text-align: center;
    justify-content: center;
}

.tab a:link {
    color: black;
    font-weight: bold;
}

.tab a:visited {
    color: black;
    font-weight: bold;
}

.redlink a:link {
    color: crimson;
    padding-top: 1rem;
    font-weight: bold;
}

.redlink a:visited {
    color: crimson;
    padding-top: 1rem;
    font-weight: bold;
}

.leada {
    color: black;
    margin-top: 3.13rem;
    text-align: center;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 3rem;
    line-height: 3.25rem;
}

.leadb {
    text-align: center;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2.5rem;
    line-height: 3rem;
}

.leadc {
    text-align: center;
    font-style: normal;
    margin-bottom: 2.5rem;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2rem;
    line-height: 2.5rem;
}

.poem-a {
    margin-top: 3.13rem;
    margin-left: 5%;
    margin-right: 5%;
    margin-bottom: 2.5rem;
    font-style: normal;
    text-align: left;
    color: black;
    font-family: 'solway', serif;
    font-size: 2.25rem;
    line-height: 2.38rem;
    font-weight: bold;
}

.parch {
    background-image: url('https://lh3.googleusercontent.com/pw/AP1GczOwNR1n9BJD_duNlaAmcp9BoDYm5xk-k0tBWV70BcThwR3CVkHBHXOFuHk-pHqtEROpyLL8B8314huJJUfMvey2_8iqUPGZlvSt8NSlKERCbdBZbw=w890-h1080');
    background-size: 100% 100%;
    padding: 1rem;
    background-position: 0 -10px;
}

.wise-man {
     margin-bottom: 0;
}

p.circle {
    clear: both;
    margin: 0;
    padding: 0rem 0;
}

.circle2:before {
  margin-top: 0;
  content: "";
  height: 504px;
  shape-outside: ellipse(50% 35% at left);
}

.circle2:before {
    margin-top: 2rem;
    content: "";
    height: 580px;
}

.cinlink a:link {
    color: #611205;
    padding-top: 1rem;
    font-weight: bold;
}

.cinlink a:visited {
    color: #611205;
    padding-top: 1rem;
    font-weight: bold;
}

.foot {
    color: #ffffee;   /* ivory */
    margin-top: 1rem;
    text-align: left;
    font-style: normal;
    margin-bottom: 3.13rem;
    font-family: 'solway', serif;
    font-weight: bold;
    font-size: 2rem;
    line-height: 2.13rem;
}
.contact {
      margin: 0;
      padding: 0rem 0rem 4rem 0rem;
      background-color: #d7bd82;
      font-style: normal;
      text-align: left;
      color: black;
      font-family: 'solway', serif;
      font-size: 2.25rem;
      line-height: 2.38rem;
      font-weight: bold;
}
.here {
    color: black;
    text-align: center;
    padding-top: 5rem;
    margin: 0rem 0 1rem 0;
    font-family: 'solway', serif;
    font-size: 4rem;
    line-height: 1.1;
    font-weight: bold;
}
.tiny {
    color: #888888;
    text-align: center;
    margin: 1rem 4rem 1rem 4rem;
    font-family: '1 prime', monospace;
    font-size: 1rem;
    line-height: 1.13rem;
    font-weight: bold;
}
.nothanks {
    color: black;
    text-align: center;
    margin: 0rem 4rem 1rem 4rem;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: bold;
}
.quest {
    color: black;
    text-align: center;
    margin: 2.25rem 2rem 2.25rem 2rem;
    font-family: 'solway', serif;
    font-size: 3rem;
    line-height: 1.05;
    font-weight: bold;
}
.end {
    color: black;
    text-align: center;
    margin: 1rem 4rem 2.5rem 4rem;
    font-family: 'solway', serif;
    font-size: 2rem;
    line-height: 1.02;
    font-weight: bold;
}
.clambu35 {
	color: blue;
	font-style: italic;
	font-family: roboto, sans-serif;
    font-size: 3.5rem;
    font-weight: 900;
}

a:active {color: blue}
a:hover {color: crimson}
a:link {color: blue}
a:visited {color: blue}

/*▬▬▬▬▬▬ END CSS ▬▬▬▬▬▬*/

</style>
</head>

<body>

<aside>
<div class="centindent1">
<a href="https://web.dev/articles/shapes-getting-started">Read Razvan Caliman&rsquo;s 23-Page<br>
Primer on the CSS shape-outside</a> 
</div><!-- CLOSING CENTINDENT1 -->
<div class="notes">
<a href="https://web.dev/articles/shapes-getting-started">property</a>. I&rsquo;ve included the entire article as a .PDF in your .ZIP file — it&rsquo;s good! The <span class="crim"><span class="undr">shape-outside: ellipse</span> shown here</span> allowed me to create two virtual ellipses for the poem to flow around. See <a href="https://semicodin.nekoweb.org/vault/shape-outside_(URL)_01.html">this page of mine</a> for more detail about shape-outside. 
<div class="break">
The goal for this particular page was to <i>stylishly</i> move the text around an area of the parchment background that was too dark for black text. What I couldn&rsquo;t have antcipated is the effect &ldquo;sculpting&rdquo; the text in this fashion would have upon the poem itself! There is a relationship between the two &ldquo;waves&rdquo; created by the <span class="crim"><span class="undr">space-outside: ellipse</span></span> used to form them: The resulting two stanzas of the poem draw from their shape new depth!
</div><!-- CLOSING BREAK -->
<div class="henpen">semicodin</div>
</div><!-- CLOSING NOTES -->
</aside>

  <div class="bkdimg2 tab1active">
    <div class="ctr ctr2">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Thomas_Merton">T. Merton</a></span></div>
    </div>
    <div class="ctr ctrmid">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Zhuang_Zhou">Chuang Tzu</a></span></div>
    </div>
    <div class="ctr ctr3">
      <div class="tab"><span class="tablabel3"><a href="https://en.m.wikipedia.org/wiki/Zhuangzi_(book)">&ldquo;Zhuangzi&rdquo;</a></span></div>
    </div>
  </div>

  <div class="parch">

    <div class="poem-a">

      <div class="leada">
        &ldquo;The Empty Boat&rdquo;
      </div>
      <div class="leadb">
        From <i>&ldquo;The Way of Chuang Tzu&rdquo;</i>
      </div>
      <div class="leadc">
        Interpreted by Thomas Merton, Trappist Monk<br>
        1915-1968
      </div>

      <div class="twrap1">
        <p class="circle">
          He who rules men lives in confusion;<br>
          He who is ruled by men lives in sorrow.<br>
          Yao therefore desired<br>
          Neither to influence others<br>
          Nor to be influenced by them.<br>
          The way to get clear of confusion<br>
          And free of sorrow<br>
          Is to live with Tao<br>
          In the land of the great Void.</p>
        
        <p class="circle circle2">
          If a man is crossing a river<br>
          And an empty boat collides with his own skiff,<br>
          Even though he be a bad-tempered man<br>
          He will not become very angry.<br>
          But if he sees a man in the boat,<br>
          He will shout at him to steer clear.<br>
          If the shout is not heard, he will shout again,<br>
          And yet again, and begin cursing.<br>
          And all because there is somebody in the boat.<br>
          Yet if the boat were empty,<br>
          He would not be shouting, and not angry.</p>
                </div><!-- ENDING TWRAP1 -->

<p class="break"></p>
      <div class="indent">
        If you can empty your own boat<br>
        Crossing the river of the world,<br>
        No one will oppose you,<br>
        No one will seek to harm you.<br>
      </div>

      <p class="break">
      The straight tree is the first to be cut down,<br>
      The spring of clear water is the first to be drained dry.<br>
      If you wish to improve your wisdom<br>
      And shame the ignorant,<br>
      To cultivate your character<br>
      And outshine others;<br>
      A light will shine around you<br>
      As if you had swallowed the sun and the moon:<br>
      You will not avoid calamity.</p>
      

      <p class="break wise-man">
        A wise man has said:</p>

      <div class="indent">
        &ldquo;He who is content with himself<br>
        Has done a worthless work.<br>
        Achievement is the beginning of failure.<br>
        Fame is the beginning of disgrace.&rdquo;
      </div>
      <p class="break">
      Who can free himself from achievement<br>
      And from fame, descend and be lost<br>
      Amid the masses of men?<br>
      He will flow like Tao, unseen,<br>
      He will go about like Life itself
      With no name and no home.<br>
      Simple is he, without distinction.<br>
      To all appearances he is a fool.<br>
      His steps leave no trace. He has no power.<br>
      He achieves nothing, has no reputation.<br>
      Since he judges no one<br>
      No one judges him.</p>
      <p class="break"></p>
      <div class="indent">Such is the perfect man:<br>
        His boat is empty.
      </div>

      <p class="foot">
      [xx. 2.]<br>
      [xx. 2, 4.]<br>
      114<br>
      115
      </p>
    </div> <!--  Closing POEM-A  -->
  </div> <!--  Closing PARCH  -->

    <div class="contact">

    <div class="here">
    <p class="cinlink">
    <a href="https://semicodin.nekoweb.org/(shape-outside_ellipse)_01">
Code Here.</a>
    </p>
    </div>

    <div class="nothanks">
All &lt;p&gt; tags by Writ of Order:<br>
Paul O&rsquo;Brien at the Sitepoint Forums.
    </div>

    <div class="quest">
Got Questions? You can PM me at<br>
    <a href="https://sitepoint.com/community/c/html-css/25">the Sitepoint Forums</a><span class="clambu35">!</span><br>
    </div>

    <div class="end">
CLICK HERE TO PROCEED<br>
    <a href="https://semicodin.nekoweb.org/toc.html">
TO THE TABLE OF CONTENTS</a>
    </div>

</div><!-- CLOSING CONTACT -->

</body>
</html>

No kidding. I copied/pasted the html from post #1 to codepen just to show the html next to the output.

Codepen doesn’t like everything in the html window (it prefers good practices of separation of concerns) but it will render it.

It may be hard to credit it but I actually had a true ellipse working at one point. I am going to try to hunt it down in one of my backups. It doesn’t, however, have <p tags. Yes yes yes I’ll put them back in.
RPISSED

When i said change the element called circle2:before I made no mention of you removing circle:before as that is still needed. :slight_smile:

You seemed to have removed completely the circle:before css and only added the new circle2:before while not removing the old circle2:before and thus broke that new rule also.

I’ve put the changes into a codepen here and tweaked it a little more.

I’ve only concerned myself with the 2 paragraphs that have the ellipses and its not perfect as I am away and have limited resources here.

Note that when you have longer paragraphs then the ellipse must change in some way so really is a matter of trial and error using devtools to see how things look while you test.

1 Like

I have an academic question — actually, 2 questions:

Are we combining the ellipse for the two stanzas?

And if we are, shouldn’t we be separating them into two completely unique ellipses because they have two very different lengths? In other words, we’re going to experience problems in one of the stanzas because he is compromised by being defined for a longer stanza?