列数将图像缩减一半

时间:2018-04-05 17:55:05

标签: html css css3 bootstrap-4 css-multicolumn-layout

我在页面上有大量文本,当屏幕较大时,我有媒体查询来使文本形成列。但是,当我这样做时,有些照片并没有完全进入一列。

无论出于何种原因,它会将照片分开并在一列的底部显示一部分,其余部分在下一列中显示。 div也会发生这种情况。如果我交换了白色功能div和图像,那么它也会分裂。

这是我的代码的一部分,有一个简单的例子:

.content-heading h1{
	border-top: 10px solid;
	margin-top: 100px;
	padding-top: 15px;
	line-height: 1;
	display:  inline-block;
}
.content-heading h2{
	padding-bottom: 15px;
	margin-bottom: 50px;
}
.img-box{
	background-position: center top;
	background-size:cover;
	border-radius: 8px;
	height: 250px;
	width: 250px;
	border: 8px solid #fff;
}
.container-fluid.no-pad{
  padding:0;
}
#youth-development{
    color:  #fff;
    position:  relative;
    background: rgba(244, 121, 32, 1);
}
#youth-development h1{
    border-top: 10px solid #fff;
    padding-top: 15px;
    margin-top: 0;
    display:  inline-block;
    padding-right: 99px;
}	
#youth-development h2{
	padding-bottom: 15px;
}
#youth-development .column-content{
  column-count:2;
	padding-bottom: 100px;
}
#youth-development ul{
    list-style-type: none;
    padding-left: 10px;
    color: #fcaf18;
    font-size: 20px;
}
#youth-development .img-box{
	background-image: url('http://www.fillmurray.com/200/300');
	float: left;
	margin-right:  20px;
}
#youth-development .feature-p{
	float: right;
    width: 400px;
    background-color: #fff;
    color: #6d6d6d;
    padding: 15px;
    border-radius: 8px;
}
#youth-development .feature-p h4{
    color: #f57920;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid no-pad">
<section id="youth-development">			
    <div class="row no-gutters justify-content-center">
      <div class="col-sm-10 content-heading">
        <h1>Safety Around Water</h1>
        <h2>For Youth Development</h2>
      </div>
    </div>
    <div class="row no-gutters justify-content-center">
      <div class="col-sm-10 column-content">								
        <div class="feature-p">
          <h4>The statistics are shocking:</h4>
          <ul>
            <li>- Children ages 1 to 4 have the highest drowning rates.</li>
            <li>- For kids under age 12, drowning is the second leading cause of accidental death.</li>
            <li>- Two children die every day because of drowning.</li>
          </ul>
        </div>
        <p>Drowning can happen nearly anywhere with standing water. Every child deserves to know
        how to be safe around water. As America’s swim instructor, and one of the most accessible
        community resources to prevent drowning, YMCAs across the country have committed to
        helping children learn the invaluable skill of swimming and water safety through a variety of
        programs.</p>

        <p>Safety Around Water is a grant-funded program that helps children learn how to perform a
        sequenced set of skills over eight lessons of 40 minutes each. During that time the risk of
        drowning is reduced and children are given confidence in and around water.
        A typical session includes exercises to help kids adjust to being in water; instruction in
        “Jump, Push, Turn, Grab” and “Swim, Float, Swim,” two skill sets kids can use if they
        unexpectedly find themselves in the water; and specific safety topics, like what to do if you
        see someone in the water who needs help. Participants also have fun in the process!
        In 2017, 1,608 children were served through Safety Around Water at Jerry Long, William G.
        White, Jr., Kernersville, Davie, Stokes, and Statesville Family YMCAs. Additionally, Wilkes
        Family YMCA provides 400 pre-K students with swimming lessons through United Way
        Funding.</p>
        <div class="img-box"></div>	
        <p>Through a longstanding partnership with Davie County Schools, every second grader visits
        the Davie Family YMCA for the Safety Around Water program. Ethan was one of those
        students who first learned to swim at the Y. He started off in the beginner class but was
        eager to swim and made it his goal to wear a green band and be able to swim anywhere in
        the pool by himself. A green band is the designation given to child who passed the YMCA
        Swimmer Classification Test. In four days, Ethan learned rhythmic breathing, front stroke,
        backstroke, and how to be safe around water. Ethan is now confident around water and
        increased his knowledge of boating safety. </p>

        <p>He left the Second-Grade Safety Around Water program with his green band and is now
        competing for the YMCA Tyde swim team. After learning all four competitive strokes
        (breaststroke, backstroke, freestyle, butterfly), Ethan is helping new swimmers who join
        Tyde. Ethan and his family come to the Davie Family YMCA to swim for fun and Ethan’s little
        brother is learning to swim. </p>

        <p>Swim lessons are the next step in helping children not only stay safe, but also develop a
        lifelong love of the water. Across the Association, 3,370 individuals were served through
        swim lessons in 2017.</p>						
      </div>					
    </div>
		
</section>
</div>

我将文本从1列转换为2,然后是3,所以尝试手动将文本分成引导列对于我想要实现的目标来说很难。有没有解决这个column-count问题?

4 个答案:

答案 0 :(得分:1)

您可以对不应拆分的元素使用public static void main(String args[]) throws ParseException { String inputDate = "04/05/2018"; // This date coming from UI int timeZoneOffset = -330; // This offset coming from UI // (new Date().getTimeZoneOffset()) getDate(inputDate, timeZoneOffset); } public static Date getDate(String inputDate, int timeZoneOffset) throws ParseException { SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(-timeZoneOffset * 60); System.out.println("Default time zone: " + TimeZone.getDefault().getID()); TimeZone timeZone = TimeZone.getTimeZone(zoneOffset); System.out.println("Time zone from offset: " + timeZone.getID()); dateFormat.setTimeZone(timeZone); Date date = dateFormat.parse(inputDate); System.out.println("Converted date: " + date); return date; } 。 (列分隔符被视为分页符)

答案 1 :(得分:1)

所需的CSS更改如下:

-webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */

page-break-inside: avoid; /* Firefox */

break-inside: avoid; /* IE 10+ */

请检查Link以便更好地理解。

答案 2 :(得分:0)

基于文本字距调整分割文本,图像位置高于字距。这取决于浏览器的工作方式。 Firefox似乎运行良好,Chrome没有。一种解决方案可能是在div上添加一些垂直填充。

答案 3 :(得分:0)

你的引导标签需要一些工作。这是一个包含如下列的示例的链接:

  • xs - sm:1列
  • md +:2列

bootstap标签遵循以下模式:

<div class="container>
  <div class="row">
    <div class="col-12 col-md-6">
    <div class="col-12 col-md-6">
  </div>
</div>

https://plnkr.co/edit/T1AhrX7NYRspiC29Jc75?p=preview

你正在使用的css是针对某些bootstrap试图做的事情。一旦正确设置了bootstap标签,您就需要重新完成其中的一些工作。