The below code uses the responsive grid system and the CSS page-break-inside
property.
Basically, we'll set the value of the page-break-inside
property to avoid
, which means that display the complete item on the same page and don't break it on page break. That means the whole item will be displayed on the same page.
In your case, we'll enclose the whole main group into one div and assign the page-break-inside
property. And to get a tabular structure we'll use the CSS grid system, rows, and cols.
Now, this code does not copy the main q.no, sub q.no on a page break. But it keeps all questions of the same main q.no on the same page.
This code can also be implemented by for loops for dynamically filling the page.
Note the print
CSS class. It is assigned to the row where we are creating a new main question. If this serves your purpose, I can help you design the for
loop, if it seems complex...
.row {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col,
.col-auto {
position: relative;
width: 100%;
}
.col {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-auto {
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: 100%;
}
.col-1 {
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-2 {
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-3 {
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-5 {
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-6 {
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-8 {
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-9 {
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-11 {
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-12 {
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
@media print {
.print {
page-break-inside: avoid;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="row print">
<div class="col-1"> 1 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 2 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 3 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 4 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 5 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 6 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
<div class="row print">
<div class="col-1"> 7 </div>
<div class="col-11">
<div class="row">
<div class="col-1"> a </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> b </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
<div class="row">
<div class="col-1"> c </div>
<div class="col-11">
<div class="row">
<div class="col-1">i</div>
<div class="col-10">Here is question 1</div>
<div class="col-1">1.0</div>
</div>
<div class="row">
<div class="col-1">ii</div>
<div class="col-10">Here is question 2</div>
<div class="col-1"> 1.0 </div>
</div>
<div class="row">
<div class="col-1">iii</div>
<div class="col-10">Here is question 3</div>
<div class="col-1"> 1.0 </div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>