CSS border-block-start-style Property

Beginner
6 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The border-block-start-style property sets the line style of the logical block-start border. It maps to a physical edge based on writing-mode, direction, and text-orientation.

In the default horizontal writing mode, block-start is usually the top edge, so this property acts like border-top-style. In a vertical writing mode, the same declaration follows the block-start side instead of a fixed physical top. It applies to all elements and is not inherited. The initial value is none.

Standard-track.

Not deprecated and not experimental. Logical border styles have been widely available since 2020.

CSS Syntax

syntax.css
border-block-start-style: none | solid | dashed | dotted | double | groove | ridge | inset | outset | hidden | initial | inherit;

These are the same <line-style> keywords used by physical border styles. The initial value is none.

Property Values

ValueDescriptionTry it
noneNo block-start border. Initial valueTry it
solidA single solid line on the block-start edgeTry it
dashedA dashed lineTry it
dottedA dotted lineTry it
doubleTwo parallel solid linesTry it
grooveA carved 3D look. Needs enough width to read clearlyTry it
initialSets this property to its default value, noneTry it
inheritInherits this property from the parent elementTry it

ridge, inset, outset, and hidden are also valid line styles. hidden hides the border like none, but can behave differently in table border collapsing.

How to Use border-block-start-style

Pick a visible style, then give the line a width and a color so you can see it.

  1. Set border-block-start-style to a keyword such as solid or dashed.
  2. Set border-block-start-width to a size larger than 0.
  3. Set border-block-start-color so the line contrasts with the background.
  4. Or use the border-block-start shorthand for width, style, and color in one line.
PieceRequired?Role
A style keywordYesnone hides the line. solid and friends draw it
A widthTo see it clearlyWithout thickness, the style is hard to notice
A colorTo see it clearlyLow contrast makes the edge look missing

Live Preview

The box keeps the same width and color. Only border-block-start-style changes.

In horizontal writing, block-start is usually the top edge.

Result

Block start

border-block-start-style: solid

CSS Examples

Each snippet shows only what you need for the block-start style: a keyword, a width, and a color. Use Try It Yourself for a live editor.

Example 1 — Solid Block-Start Line

Draw a solid line on the block-start edge. In horizontal writing, that is the top.

CSS
<style>
  p {
    border-block-start-style: solid;
    border-block-start-width: 4px;
    border-block-start-color: blue;
  }
</style>

<p>Block start</p>
Try It Yourself

How It Works

  1. Choose the style. border-block-start-style: solid asks for a single continuous line.
  2. Give it thickness. border-block-start-width: 4px makes the line easy to see.
  3. Give it color. border-block-start-color: blue sets the ink of that edge.
  4. Read the edge. With default horizontal writing, block-start is the top of the paragraph.

Example 2 — Dashed Accent

Same edge, softer dashes instead of a solid stroke.

CSS
<style>
  p {
    border-block-start-style: dashed;
    border-block-start-width: 4px;
    border-block-start-color: blue;
  }
</style>

<p>Block start</p>
Try It Yourself

How It Works

  1. Keep width and color. Only the style keyword changes.
  2. Switch to dashes. dashed draws a broken line on the block-start edge.
  3. Compare with solid. Same place, different pattern. That is all this property controls.
  4. Reuse the idea. dotted and double work the same way: change the keyword, keep width and color.

Example 3 — Vertical Writing Mode

The style stays on the logical block-start side when the writing mode flips.

CSS
<style>
  p {
    writing-mode: vertical-rl;
    border-block-start-style: solid;
    border-block-start-width: 4px;
    border-block-start-color: blue;
  }
</style>

<p>Block start</p>
Try It Yourself

How It Works

  1. Flip the block axis. writing-mode: vertical-rl makes lines run vertically.
  2. Keep the logical style. The same border-block-start-style: solid still targets block-start.
  3. Watch the physical edge move. The line is no longer stuck to the top of the screen box.
  4. Why logical properties exist. One style declaration can follow the writing mode instead of rewriting border-top-style or border-right-style.

Edge Cases & Pitfalls

If the line is missing, the style, width, or color is usually why.

none

The default draws nothing

The initial value is none. Until you set a visible keyword, there is no block-start border to style.

width

Style alone can look invisible

Set border-block-start-width and a clear border-block-start-color. Thin lines and low contrast are easy to miss.

top

Not the same as border-top-style

border-top-style always hits the physical top. This property follows the block-start side when writing-mode changes.

short

The shorthand can overwrite the style

border-block-start sets width, style, and color together. Writing the shorthand after border-block-start-style replaces that style.

3d

Groove and ridge need more width

groove, ridge, inset, and outset use light and dark edges. A 1px width often looks flat. Try 4px or more.

Browser Support

border-block-start-style is a browser layout property. Node.js, Deno, and Bun do not apply it.

✓ Baseline · Widely available since 2020

border-block-start-style

Chrome 69+, Firefox 41+, Safari 12.1+, Edge 79+. Internet Explorer has no support.

97% modern browsers
Google Chrome 69+
Full support
Mozilla Firefox 41+
Full support
Apple Safari 12.1+
Full support
Microsoft Edge 79+
Full support
Opera 56+
Full support
Samsung Internet 10.1+
Full support
Internet Explorer No support
None
border-block-start-style Widely supported

Bottom line: Safe for modern browsers. For Internet Explorer, use a physical fallback such as border-top-style when you only need horizontal layouts.

Key Takeaways

  • Role: the line style of the logical block-start border.
  • none: the initial value. No block-start border until you pick a visible style.
  • Logical: follows writing mode. Not locked to the physical top.
  • Pair it: add width and color, or use border-block-start.

One line: border-block-start-style chooses how the block-start edge is drawn; writing mode chooses which physical side that is.

Frequently Asked Questions

It sets the line style of the logical block-start border. In the default horizontal writing mode, that is usually the top edge. With a vertical writing mode, the same property follows the block-start side.
The initial value is none. No block-start border shows until you set a visible style such as solid or dashed.
none draws no line. You also need a width greater than zero and a color that contrasts with the background. Setting only the style is not always enough to see a clear edge.
border-top-style always styles the physical top edge. border-block-start-style follows writing-mode, direction, and text-orientation, so it stays on the logical block-start side.
Yes. border-block-start can set width, style, and color together. A later border-block-start-style declaration can still change only the style.
Chrome 69+, Firefox 41+, Safari 12.1+, and Edge 79+ support it. Internet Explorer does not. It is a browser layout property, not a Node.js feature.

Next: border-block-start-width

Set how thick the logical block-start border is.

border-block-start-width tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful